.project-finances,
.project-detail-section {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  padding: 24px;
  margin-top: 28px;
}
.project-finances > .section-heading,
.project-detail-section > .section-heading {
  margin: 0 0 20px;
}
.budget-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin: 20px 0;
}
.budget-summary small {
  display: block;
  font: 10px/1.5 var(--mono);
  text-transform: uppercase;
  color: var(--muted);
  letter-spacing: 0.06em;
}
.budget-summary strong {
  display: block;
  font-size: 24px;
  margin-top: 8px;
}
.project-finances > .disclosure,
.project-detail-section > .disclosure {
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  margin-top: 16px;
}
.project-finances > .disclosure > summary,
.project-detail-section > .disclosure > summary {
  font-size: 14px;
  padding: 16px 0;
  min-height: 48px;
}
.project-finances > .disclosure > .panel-body,
.project-detail-section > .disclosure > .panel-body {
  padding: 8px 0 20px;
}
.budget-payment-row {
  display: grid;
  grid-template-columns: 1fr 1.2fr 0.7fr 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  font-size: 13px;
}
.budget-payment-row small,
.payment-history-row small,
.invoice-row small {
  display: block;
  color: var(--muted);
  margin: 4px 0;
}
.budget-payment-row .actions {
  justify-content: flex-end;
}
.payment-history-row,
.invoice-row,
.managed-file-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.payment-history-row[hidden] {
  display: none;
}
.logistics-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.logistics-columns h3 {
  font-size: 16px;
  margin: 0 0 8px;
}
.logistics-columns p {
  font-size: 14px;
}
.pay-lines > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
  font-size: 14px;
}
.pay-lines strong {
  font-weight: 500;
  text-align: right;
}
.pay-card > small {
  display: block;
  color: var(--muted);
  margin-top: 16px;
}
.day-pay-options {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.day-pay-options button {
  margin-left: auto;
}
.assignment-day textarea {
  min-height: 72px;
}
.assignment-dialog [data-assignment-days] > .section-heading {
  margin: 8px 0 16px;
}
[data-manual-days][hidden] {
  display: none;
}
@media (max-width: 900px) {
  .budget-payment-row {
    grid-template-columns: 1fr 1fr;
  }
  .budget-payment-row .actions {
    grid-column: 1/-1;
  }
  .logistics-columns {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  .budget-summary {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .budget-summary strong {
    font-size: 22px;
  }
  .logistics-columns {
    grid-template-columns: 1fr;
  }
  .project-facts-summary {
    grid-template-columns: 1fr 1fr;
  }
  .day-pay-options {
    display: block;
  }
  .day-pay-options button {
    margin: 10px 0;
  }
  .budget-payment-row {
    grid-template-columns: 1fr;
  }
  .payment-history-row {
    align-items: flex-start;
  }
  .managed-file-row span {
    overflow-wrap: anywhere;
  }
  .budget-payment-row .actions {
    justify-content: flex-start;
  }
}
.post-filters {
  margin: 20px 0;
}
.post-filters button {
  flex: 1;
}
.post-empty {
  padding: 36px 24px;
  text-align: center;
  border: 1px dashed var(--line);
  border-radius: 12px;
}
.post-list:has(.post-empty):not(:has(.post-row)) {
  border: 0;
}
.post-list:has(.post-empty):not(:has(.post-row)) > .post-list-head {
  display: none;
}
.calendar-menu {
  max-width: 100%;
}
.calendar-menu > summary {
  font-size: 13px;
  gap: 10px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.calendar-menu > .menu-panel {
  min-width: 230px;
}
@media (max-width: 600px) {
  .calendar-menu > summary {
    padding: 10px;
    white-space: normal;
  }
  .calendar-menu > summary > span:not(.toggle) {
    text-align: left;
    word-spacing: normal;
    letter-spacing: normal;
    line-height: 1.4;
  }
  .calendar-menu > .menu-panel {
    right: 0;
    min-width: min(230px, 80vw);
  }
}
.solar-times {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 16px;
  color: var(--muted);
  font-size: 13px;
}
.solar-time {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.solar-time svg {
  width: 18px;
  height: 18px;
  color: var(--accent);
  flex-shrink: 0;
}
.call-strip .solar-time > span {
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
}
@media (max-width: 600px) {
  .solar-times {
    gap: 8px;
    margin-top: 14px;
  }
  .solar-time {
    gap: 4px;
  }
  .call-strip .solar-time > span {
    font-size: 11px;
  }
  .solar-time svg {
    width: 16px;
    height: 16px;
  }
}

.agreement-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
}
.agreement-facts > div {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.agreement-facts dt {
  color: var(--muted);
}
.agreement-facts dd {
  margin: 0;
  overflow-wrap: anywhere;
}
.agreement-document {
  padding: 8px 0 20px;
}
.agreement-document h3 {
  margin: 22px 0 8px;
}
@media (max-width: 650px) {
  .agreement-facts {
    grid-template-columns: 1fr;
  }
}

.project-client-picker {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-content: end;
}
.project-client-picker > select {
  grid-column: 1;
}
.project-client-picker > button {
  grid-column: 2;
  grid-row: 2;
}

[data-card-key$=":Updates"] {
  border: 0;
  background: transparent;
  border-radius: 0;
  margin: 0 0 16px;
  padding: 0;
}
[data-card-key$=":Updates"] > summary {
  border: 0 !important;
  padding: 8px 0 !important;
  min-height: 32px !important;
  font: 400 11px/1.5 var(--mono) !important;
  color: var(--accent);
}
[data-card-key$=":Updates"] > summary .summary-meta {
  margin-left: 0;
  font: 400 10px/1.5 var(--mono);
}
[data-card-key$=":Updates"] > summary .toggle {
  margin-left: auto;
}
[data-card-key$=":Updates"] > .panel-body {
  padding: 16px 0;
}
.plan-update-banner {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  font-size: 13px;
}

.project-dialog-options {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 20px;
  padding: 20px 0 0;
  border: 0;
  margin: 0;
}
.project-dialog-options .check {
  margin: 0;
  font:
    400 13px/1.5 Manrope,
    Arial,
    sans-serif;
  letter-spacing: 0;
}
.wedding-project-dialog [data-wedding-fields] {
  display: grid;
  gap: 24px;
}
.wedding-project-dialog [data-wedding-fields] > h2 {
  margin: 0;
}
.wedding-project-dialog [data-project-fields] {
  margin: 0;
}

.client-counts {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
  margin: 24px 0;
}
.client-counts span {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
}
.client-counts strong {
  color: var(--ink);
  font-size: 28px;
  font-weight: 500;
}
.client-group {
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  margin: 24px 0;
}
.client-group > .section-heading {
  padding: 16px 20px;
  margin: 0;
  background: var(--surface);
}
.client-group h2 {
  margin: 0;
  font-size: 18px;
}
.client-deliverable {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px 250px;
  gap: 20px;
  align-items: center;
  padding: 20px;
  border-top: 1px solid var(--line);
}
.client-deliverable:first-of-type {
  border-top: 0;
}
.client-deliverable h3 {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 6px;
}
.client-deliverable small,
.client-footer {
  color: var(--muted);
  font-size: 12px;
}
.client-update {
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.client-preview-dialog {
  width: min(1120px, calc(100vw - 32px));
}
@media (max-width: 650px) {
  .client-counts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .client-deliverable {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    padding: 18px;
  }
  .client-deliverable > div {
    grid-column: 1/-1;
  }
  .client-deliverable .button {
    min-width: 0;
  }
  .client-filters > select {
    min-width: 0;
    flex: 1;
  }
}

.working-together {
  margin: 28px 0;
}
.working-together > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 20px;
  gap: 20px;
}
.working-together strong,
.working-together small {
  display: block;
  font-size: 13px;
}
.working-together small {
  font-size: 12px;
  color: var(--muted);
}
img.avatar {
  object-fit: cover;
}

.review-settings-panel { padding: 20px; }
.review-settings-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 28px; }
.review-settings-label { margin: 0; color: var(--muted); font: 400 11px/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.review-settings-form .review-enable {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  min-height: 72px;
  padding: 14px 0;
  align-items: center;
  margin: 0;
  font: 400 14px/1.5 var(--font-body);
  cursor: pointer;
}
.review-settings-form .review-enable + .review-enable { border-top: 1px solid var(--line); }
.review-settings-form .review-enable strong { display: block; color: var(--ink); font-weight: 500; }
.review-settings-form .review-enable small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 3px;
}
.review-settings-update { display: flex; flex-direction: column; gap: 10px; margin: 0; min-width: 0; }
.review-settings-update .review-settings-label { display: flex; justify-content: space-between; gap: 12px; }
.review-settings-label small { font: 400 11px/1.5 var(--font-body); letter-spacing: 0; text-transform: none; }
.review-settings-form textarea { flex: 1; min-height: 118px; font: 400 14px/1.6 var(--font-body); letter-spacing: 0; }
.review-settings-footer { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 16px; display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; }
.review-settings-form .actions { justify-content: flex-start; margin: 0; gap: 8px; }
.review-settings-form [data-settings-status] { margin: 0; color: var(--danger); font: 400 12px/1.5 var(--font-body); }
.review-settings-form [data-settings-status]:empty { display: none; }
@media (max-width: 800px) {
  .review-settings-grid { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 450px) {
  .review-settings-panel { padding: 16px; }
  .review-settings-form .actions { width: 100%; }
  .review-settings-form .actions > button { flex: 1; }
}
main:has(.review-settings-form) .collection-tools > input {
  max-width: none;
}
.client-visibility-table td strong {
  font-weight: 500;
  font-size: 14px;
}
.client-visibility-table td small {
  display: block;
  font-size: 12px;
  color: var(--muted);
}
.client-visibility-table [data-toggle-visible] {
  min-height: 44px;
  min-width: 96px;
  padding: 8px 12px;
  color: var(--muted);
  border-color: var(--line);
  font: 400 12px/1.5 var(--font-body);
}
.client-visibility-table [data-toggle-visible][aria-pressed="true"] {
  color: var(--accent);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.client-visibility-table [data-toggle-visible]:hover { border-color: var(--line); color: var(--ink); }
.client-visibility-table {
  margin-top: 16px;
}

.agreement-editor {
  width: min(860px, calc(100vw - 32px));
  max-height: 90dvh;
}
.agreement-editor textarea[name="body"] {
  height: 160px;
  min-height: 120px;
}
.agreement-editor [data-agreement-preview]:not(:empty) {
  margin-top: 24px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
@media (max-width: 650px) {
  .agreement-editor [data-agreement-preview]:not(:empty) {
    padding: 16px;
  }
}

.edit-deliverable-dialog {
  width: min(720px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  padding: 24px;
}
.edit-deliverable-dialog textarea {
  height: 68px;
  min-height: 46px;
}

.post-update-section {
  border-top: 1px solid var(--line);
  padding-top: 18px;
  margin-top: 18px;
}
.post-update-section h4 {
  margin: 0 0 16px;
  font-size: 15px;
}
.post-update-section textarea {
  min-height: 68px;
}
[data-post-history] {
  border-top: 1px solid var(--line);
  margin-top: 20px;
}
.post-history-entry {
  padding: 14px 0;
  border-top: 1px solid var(--line);
}
[data-latest-update]:not(:empty) {
  margin-top: 16px;
  padding: 14px;
  background: var(--bg);
  border-radius: 8px;
}

.payment-dialog {
  width: min(440px, calc(100vw - 32px));
  max-height: 90dvh;
  border-radius: 18px;
  padding: 28px;
}
.payment-dialog form > label {
  margin: 16px 0;
}
.payment-dialog textarea {
  height: 68px;
  min-height: 46px;
}

.wedding-finance-section {
  margin-top: 24px;
}
.wedding-finance-section > h3 {
  margin: 0 0 16px;
  font-size: 18px;
}

.agreement-table {
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.agreement-table-head,
.agreement-table .agreement-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.5fr) 1fr 1fr auto;
  align-items: center;
  gap: 20px;
  padding: 18px 20px;
}
.agreement-table-head {
  font: 11px var(--mono);
  text-transform: uppercase;
  color: var(--muted);
}
.agreement-row {
  border-top: 1px solid var(--line);
  font-size: 14px;
}
.agreement-dialog {
  width: min(860px, calc(100vw - 32px));
  max-height: 90dvh;
}
.agreement-dialog .agreement-document {
  margin: 24px 0;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
@media (max-width: 650px) {
  .agreement-table-head {
    display: none;
  }
  .agreement-table .agreement-row {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .agreement-row button {
    justify-self: end;
  }
  .agreement-dialog .agreement-document {
    padding: 16px;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.project-manage-dialog .form-actions {
  justify-content: flex-end;
  border: 0;
  padding-top: 0;
  margin-top: 24px;
}
.project-manage-dialog .project-dialog-options .check {
  font: 16px var(--font-body);
}
.project-manage-dialog .project-client-picker > button {
  font: 14px var(--font-body);
}
.project-manage-dialog > form,
.project-manage-dialog .form-grid,
.project-manage-dialog .form-grid > *,
.project-manage-dialog fieldset {
  min-width: 0;
  max-width: 100%;
}
/* iOS date controls otherwise retain an intrinsic width inside the dialog. */
.project-manage-dialog input:is([type="date"], [type="time"]) {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  box-sizing: border-box;
  min-inline-size: 0;
  max-inline-size: 100%;
  inline-size: 100%;
}
.project-manage-dialog
  input:is([type="date"], [type="time"])::-webkit-date-and-time-value {
  min-width: 0;
  text-align: left;
}
@media (max-width: 650px) {
  .project-manage-dialog {
    overflow-x: hidden;
    overflow-y: auto;
  }
  .project-manage-dialog .project-client-picker {
    grid-template-columns: minmax(0, 1fr);
  }
  .project-manage-dialog .project-client-picker > button {
    grid-column: 1;
    grid-row: auto;
    width: 100%;
  }
}

.travel-profile-dialog {
  width: min(720px, calc(100vw - 32px));
  max-height: 90dvh;
}
.travel-profile-dialog .reward-row {
  margin-bottom: 12px;
}
.travel-profile-dialog .reward-row label {
  margin: 0;
}
@media (max-width: 600px) {
  .travel-profile-dialog .reward-row {
    grid-template-columns: 1fr;
  }
  .travel-profile-dialog .reward-row button {
    grid-column: 1;
    justify-self: start;
  }
}

.invoice-picker-dialog {
  width: min(680px, calc(100vw - 32px));
}
.invoice-picker-dialog [data-invoice-choices] {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}
.invoice-picker-dialog [data-invoice-choices] button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  text-align: left;
}
.invoice-picker-dialog [data-invoice-choices] span {
  min-width: 0;
}
.invoice-picker-dialog [data-invoice-choices] small {
  display: block;
  color: var(--muted);
  margin-top: 4px;
}
@media (max-width: 650px) {
  .agreement-dialog {
    max-height: calc(100dvh - 16px);
  }
  .agreement-dialog .agreement-document {
    padding: 12px;
    margin: 0;
  }
  .agreement-facts > div {
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 10px;
  }
}

.crew-gear-category h4 {
  font: 400 12px/1.4 var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin: 20px 0 12px;
}
.crew-gear-category .check {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

.travel-profile-dialog label small {
  font: 400 12px/1.5 var(--font-body);
  letter-spacing: 0;
}

/* Assistant proposals: group related facts instead of an indented text stream. */
.project-assistant-dialog .assistant-brief {
  border-bottom: 1px solid var(--line);
  padding-bottom: 18px;
  margin: 20px 0 24px;
}
.project-assistant-dialog .assistant-brief > summary,
.project-assistant-dialog .assistant-address-lookup > summary {
  cursor: pointer;
  font-size: 14px;
  min-height: 44px;
  align-content: center;
}
.project-assistant-dialog .assistant-brief > label {
  margin-top: 14px;
}
.project-assistant-dialog .assistant-proposal-heading {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  margin: 0 0 20px;
}
.assistant-proposal-heading .eyebrow {
  margin: 0 0 8px;
}
.assistant-proposal-heading h3 {
  margin: 0;
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.assistant-proposal-heading > p:last-child {
  color: var(--muted);
  font-size: 14px;
  margin: 10px 0 0;
}
.assistant-proposal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.assistant-proposal-section {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
}
.assistant-proposal-section h4 {
  font: 600 12px/1.5 var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 18px;
}
.assistant-proposal-section dl {
  display: grid;
  gap: 18px;
  margin: 0;
}
.assistant-proposal-section dt {
  font: 400 11px/1.5 var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  margin-bottom: 5px;
}
.assistant-proposal-section dd {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.assistant-proposal-location,
.assistant-proposal-notes {
  grid-column: 1 / -1;
}
.assistant-proposal-location dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.assistant-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.assistant-tools li {
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 13px;
}
.assistant-proposal-notes p {
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
  color: var(--ink);
}
.project-assistant-dialog .assistant-address-lookup {
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.assistant-address-lookup label {
  margin-top: 12px;
}
.assistant-address-lookup .actions {
  margin: 12px 0;
}
.assistant-address-lookup [data-address-results] > p {
  display: grid;
  gap: 10px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.assistant-address-lookup small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 12px;
}
.assistant-next-step {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.7;
  margin: 20px 0 0;
}
.assistant-followups {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.assistant-followups h3 {
  margin-top: 0;
}
.assistant-followups ol {
  display: grid;
  gap: 12px;
  padding-left: 24px;
  margin-bottom: 24px;
}
.project-assistant-dialog .form-actions {
  border-top: 1px solid var(--line);
  padding-top: 20px;
  margin-top: 24px;
  gap: 12px;
}
@media (max-width: 600px) {
  .assistant-proposal-grid,
  .assistant-proposal-location dl {
    grid-template-columns: minmax(0, 1fr);
  }
  .assistant-proposal-section {
    padding: 16px;
  }
  .project-assistant-dialog .form-actions {
    flex-direction: column;
  }
  .project-assistant-dialog .form-actions button {
    width: 100%;
  }
}
.call-sheet-sharing > p,
.call-sheet-sharing section > p {
  color: var(--muted);
  line-height: 1.7;
}
.call-sheet-sharing section {
  padding: 20px 0;
  border-top: 1px solid var(--line);
  margin-top: 20px;
}
.call-sheet-sharing .actions {
  gap: 12px;
  margin-top: 18px;
}
.call-sheet-sharing small {
  display: block;
  color: var(--muted);
  margin-top: 10px;
}
.call-sheet-sharing [data-share-status] {
  font-size: 14px;
  line-height: 1.6;
  margin-top: 16px;
}
@media (max-width: 650px) {
  .call-sheet-sharing .actions {
    flex-direction: column;
  }
  .call-sheet-sharing .actions > * {
    width: 100%;
  }
}

.bulk-call-sheets .delivery-channels {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
}
.bulk-call-sheets .delivery-channels label {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bulk-call-sheets .delivery-channels input {
  width: 20px;
  height: 20px;
  margin: 0;
}
.delivery-recipients {
  list-style: none;
  padding: 0;
  max-height: 320px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.delivery-recipients li {
  display: grid;
  gap: 4px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
  overflow-wrap: anywhere;
}
.delivery-recipients li:last-child {
  border-bottom: 0;
}
.delivery-recipients span {
  color: var(--muted);
  font-size: 13px;
}
.bulk-call-sheets [data-delivery-status] {
  color: var(--accent);
}
@media (max-width: 600px) {
  .bulk-call-sheets .actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}
.bulk-call-sheets > p,
.bulk-call-sheets [data-delivery-review] > p {
  font-size: 14px;
  line-height: 1.5;
  margin: 16px 0;
}
.bulk-call-sheets .delivery-channels label {
  flex-direction: row;
  font-family: inherit;
  font-size: 14px;
  letter-spacing: 0;
}
.bulk-call-sheets .delivery-recipients {
  max-height: min(30vh, 240px);
  margin: 16px 0;
}

.project-job-travel-dialog {
  width: min(1040px, calc(100vw - 32px));
  max-height: 90dvh;
}
.project-job-travel-dialog > p,
.project-job-travel-dialog .modal-head p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}
.project-job-travel-dialog .modal-head p {
  margin: 4px 0 0;
}
.job-travel-person {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 20px;
  margin-top: 16px;
}
.job-travel-person .section-heading {
  margin: 0 0 16px;
}
.job-travel-person h3 {
  margin: 0;
  font-size: 17px;
}
.job-travel-person h4 {
  margin: 0 0 12px;
  font: 400 11px/1.5 var(--mono);
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.job-travel-person p {
  margin: 6px 0;
  font-size: 14px;
  overflow-wrap: anywhere;
}
.job-travel-person .section-heading p {
  color: var(--muted);
}
.job-travel-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.job-travel-columns > section {
  min-width: 0;
}
.job-travel-columns strong {
  font-size: 14px;
  overflow-wrap: anywhere;
}
.job-travel-columns dl {
  margin: 12px 0 0;
  font-size: 13px;
}
.job-travel-columns dl > div {
  margin: 8px 0;
}
.job-travel-columns dt {
  color: var(--muted);
}
.job-travel-columns dd {
  margin: 2px 0 0;
  overflow-wrap: anywhere;
}
.job-travel-notes {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
@media (max-width: 650px) {
  .job-travel-columns {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .job-travel-columns > section + section {
    border-top: 1px solid var(--line);
    padding-top: 16px;
  }
  .job-travel-person {
    padding: 16px;
  }
  .job-travel-person .section-heading {
    align-items: flex-start;
    gap: 12px;
  }
}

.project-finances > .project-budget-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  cursor: pointer;
}
.project-finances > .project-budget-heading::-webkit-details-marker {
  display: none;
}
.project-budget-heading h2 {
  margin: 0;
  font-size: 21px;
}
.project-finances > .section-heading {
  justify-content: flex-end;
  margin-top: 20px;
}
.project-actions > summary .ui-icon {
  flex-shrink: 0;
}

.project-travel-facts .known-traveler-number {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.tsa-precheck-logo {
  box-sizing: content-box;
  display: block;
  width: 72px;
  height: 20px;
  flex: 0 0 72px;
  object-fit: contain;
  padding: 0;
  background: transparent;
}

.tsa-precheck-light {
  display: none;
}
:root[data-theme="light"] .tsa-precheck-dark {
  display: none;
}
:root[data-theme="light"] .tsa-precheck-light {
  display: block;
}

.job-travel-columns > section {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
}
.job-travel-columns h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
}
.job-travel-columns h4 svg { width: 18px; height: 18px; flex-shrink: 0; }
.job-travel-columns dl > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
}
.job-travel-columns dd { text-align: right; }
.job-travel-editor fieldset { min-width: 0; border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.job-travel-editor fieldset label { display: flex; align-items: center; gap: 10px; margin: 10px 0; }
.job-travel-editor fieldset input[type=checkbox] { width: 20px; height: 20px; }
.job-travel-editor fieldset label.check {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  text-align: left;
  font: inherit;
  letter-spacing: normal;
}
.job-travel-editor fieldset label.check:has(input:disabled) { opacity: .5; }

.schedule-build-dialog {
  width: min(1240px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: 92dvh;
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}
.schedule-build-dialog form { min-width: 0; }
.schedule-build-dialog .form-actions { position: sticky; bottom: 0; background: var(--panel, #171c1d); padding: 16px 0; z-index: 2; }
.schedule-build-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; margin: 20px 0; }
.schedule-build-toolbar > label { min-width: 130px; }
.schedule-build-row { border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin: 10px 0; min-width: 0; }
.schedule-build-row-head { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.schedule-build-row-head > span { flex: 1; min-width: 120px; font-size: 12px; color: var(--muted); }
.schedule-build-fields { display: grid; grid-template-columns: 2fr 1.2fr 1fr 1fr 1.2fr 1.5fr; gap: 10px; }
.schedule-build-fields input, .schedule-build-fields select { padding: 10px; min-width: 0; max-width: 100%; box-sizing: border-box; }
.schedule-build-row small { display: block; color: var(--muted); margin-top: 8px; }
.schedule-build-details { margin-top: 10px; }
.schedule-build-details > label { margin-top: 12px; }
.schedule-build-dialog .check { display:flex; flex-direction:row; align-items:center; gap:8px; letter-spacing:normal; font:inherit; }
.schedule-build-dialog .check input { flex:0 0 20px; width:20px; height:20px; }
@media (max-width: 900px) {
  .schedule-build-fields { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .schedule-build-dialog { width:calc(100vw - 16px); max-width:calc(100vw - 16px); padding:16px; }
  .schedule-build-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .schedule-build-fields .build-title { grid-column:1 / -1; }
  .schedule-build-row { padding:12px; }
  .schedule-build-row-head > span { flex-basis:100%; }
  .schedule-build-toolbar > button { flex:1 1 130px; }
}

/* Keep the crew toolbar independent of desktop's fixed 150px actions. */
@media (max-width: 650px) {
  body[data-surface="producer-overview"] .project-crew-section-heading {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  body[data-surface="producer-overview"] .project-crew-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 8px;
    margin: 0;
  }
  body[data-surface="producer-overview"] .project-crew-actions > .menu {
    min-width: 0;
    width: 100%;
  }
  body[data-surface="producer-overview"] .project-crew-actions > button,
  body[data-surface="producer-overview"] .project-crew-actions > .menu > summary {
    width: 100%;
    min-width: 0;
    height: 52px;
    min-height: 52px;
    padding: 8px;
    gap: 6px;
    white-space: normal;
    text-align: center;
  }
  body[data-surface="producer-overview"] .project-crew-actions .ui-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
  }
  body[data-surface="producer-overview"] .project-crew-actions > :only-child { grid-column: 1 / -1; }
}

@media (max-width: 650px) {
  body[data-surface="producer-overview"] .project-crew-actions:has(> .project-actions) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Job states are universal across company palettes. */
.badge[data-job-status="active"],
.page-heading-meta .project-status-menu > .project-status-picker[data-job-status="active"] {
  color: #c6f45b;
  border-color: #789c2b;
  background: rgba(198,244,91,.08);
}
.badge[data-job-status="draft"],
.page-heading-meta .project-status-menu > .project-status-picker[data-job-status="draft"] {
  color: #ffb454;
  border-color: #9c6b2b;
  background: rgba(255,180,84,.08);
}
.badge:is([data-job-status="completed"],[data-job-status="archived"]),
.page-heading-meta .project-status-menu > .project-status-picker:is([data-job-status="completed"],[data-job-status="archived"]) {
  color: #a5adaf;
  border-color: #5b6468;
  background: rgba(165,173,175,.06);
}
:root[data-theme="light"] .badge[data-job-status="active"] { color:#426900; border-color:#799e34; }
:root[data-theme="light"] .badge[data-job-status="draft"] { color:#935200; border-color:#bb7c2c; }
body[data-surface="producer-overview"] .page-heading .project-heading-dates {
  margin: 10px 0 0;
  color: var(--ink);
  font-size: 15px;
}
body[data-surface="producer-overview"] .project-summary { padding-top: 0; }
.job-state-directions { display:block; }
a.job-city-map-button { display:block; text-decoration:none; }

.crew-person-copy { min-width: 0; }
.crew-person-role { display: none; }
@media (max-width: 650px) {
  body[data-surface="producer-overview"] .project-crew-member > summary {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto 18px;
    grid-template-rows: auto auto;
    gap: 3px 8px;
    padding: 12px;
    align-items: center;
  }
  body[data-surface="producer-overview"] .project-crew-member > summary > .person {
    grid-column: 1;
    grid-row: 1;
    gap: 9px;
    align-items: center;
    min-width: 0;
  }
  body[data-surface="producer-overview"] .project-crew-member > summary .avatar {
    width: 34px; height: 34px; min-width: 34px;
  }
  .crew-person-copy { display: flex; flex-direction: column; gap: 3px; }
  .crew-person-name { font-size: 16px; font-weight: 650; line-height: 1.25; overflow-wrap: anywhere; }
  .crew-person-role { display: block; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.3; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-role-cell { display: none; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-call-cell {
    grid-column: 2; grid-row: 1;
    font: 600 16px/1.2 var(--font-body);
    color: var(--ink);
    align-self: center;
    text-align: right;
  }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-call-cell::before {
    display: block; content: "CALL"; font: 400 9px/1.2 var(--mono); margin-bottom: 4px;
  }
  body[data-surface="producer-overview"] .project-crew-member > summary > .toggle { grid-column: 3; grid-row: 1; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-availability {
    grid-column: 1; grid-row: 2; margin-left: 43px;
    border: 0; padding: 0; border-radius: 0; font-size: 11px;
    max-width: calc(100% - 43px);
  }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-sheet-cell {
    grid-column: 2 / 4; grid-row: 2; justify-self: end;
  }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-sheet-cell > :is(.button,button) {
    width: auto; min-width: 100px; max-width: 100%;
    min-height: 44px; height: 44px; padding: 7px 10px;
    font-size: 12px; line-height: 1.2; gap: 5px;
  }
}

.member-no-gear { display:flex; justify-content:space-between; gap:12px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:12px 0; margin:12px 0; font-size:13px; }
.member-no-gear span { color:var(--muted); }
.member-daily-assignments > .member-day { display:block; padding:12px 0; }
.member-day-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.member-day-head > strong { font-size:15px; font-weight:600; }
.member-day-head > .member-day-call { font-size:17px; white-space:nowrap; }
.member-day-meta, .member-day-notes { color:var(--muted); font-size:12px; line-height:1.45; margin:6px 0 0; overflow-wrap:anywhere; }
@media (max-width: 650px) {
  body[data-surface="producer-overview"] .project-crew-member .member-expanded { padding:12px; }
  .member-expanded > .booking-panel { grid-template-columns:24px minmax(0,1fr); gap:8px 10px; padding:12px; margin:0 0 12px; }
  .member-expanded .booking-status-icon { width:24px; height:24px; border:0; background:none; align-self:start; }
  .member-expanded .booking-status-icon svg { width:20px; height:20px; }
  .member-expanded .booking-status-title { margin:0 0 4px; }
  .member-expanded .booking-status-copy > p { font-size:12px; line-height:1.4; }
  .member-expanded .booking-status-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-column:1/-1; gap:8px; width:100%; }
  .member-expanded .booking-status-actions > button { width:100%; height:44px; min-height:44px; padding:6px 8px; font:500 12px/1.2 var(--font-body); }
  .member-expanded .member-expanded-top { flex-direction:column; align-items:stretch; gap:10px; margin:0 0 12px; }
  .member-expanded-top > span { align-self:flex-start; }
  .member-expanded-top > .actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; width:100%; }
  .member-expanded-top > .actions > button { width:100%; min-width:0; min-height:44px; padding:6px 8px; font-size:12px; line-height:1.2; }
  .member-expanded h3 { margin:14px 0 8px; font-size:16px; }
  .member-expanded > .actions { display:grid; grid-template-columns:1fr; gap:8px; }
  .member-expanded > .actions > button, .member-expanded > .actions > .button { width:100%; min-height:44px; font-size:12px; }
}

/* Group client receipts separately from production costs. */
.project-finances > .section-heading { margin: 12px 0 16px; }
.budget-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 20px; }
.budget-metric-group { border: 1px solid var(--line); border-radius: 10px; padding: 16px; min-width: 0; }
.budget-metric-group h3 { margin: 0 0 16px; font: 600 13px/1.4 var(--font-body); }
.budget-metric-group > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.budget-metric-group small { font-size: 9px; letter-spacing: .03em; min-height: 28px; }
.budget-metric-group strong { font-size: clamp(18px, 1.8vw, 26px); margin-top: 6px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.budget-payment-head, .budget-payment-row { grid-template-columns: minmax(180px, 1.5fr) repeat(3, minmax(95px, .7fr)) minmax(180px, 1fr); gap: 16px; }
.budget-payment-head { display: grid; padding: 14px 0 10px; font: 500 10px/1.4 var(--mono); text-transform: uppercase; color: var(--muted); }
.budget-payment-head > :last-child { text-align: right; }
.budget-payment-row { padding: 14px 0; font-variant-numeric: tabular-nums; }
.budget-payment-row .budget-mobile-label { display: none; }
.budget-payment-row .actions { gap: 8px; flex-wrap: wrap; }
.budget-payment-row .actions button { min-height: 40px; padding: 8px 12px; font-size: 12px; }
.budget-crew-name > strong { font-size: 14px; }
.budget-crew-name small { font-size: 11px; }
@media (max-width: 1000px) {
  .budget-summary { grid-template-columns: 1fr; }
  .budget-payment-head { display: none; }
  .budget-payment-row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 16px; }
  .budget-payment-row .budget-crew-name, .budget-payment-row .actions { grid-column: 1 / -1; }
  .budget-payment-row .budget-mobile-label { display: block; font-size: 10px; }
  .budget-payment-row .actions { justify-content: flex-start; }
}
@media (max-width: 450px) {
  .project-finances { padding: 16px; }
  .budget-metric-group { padding: 12px; }
  .budget-metric-group > div { grid-template-columns: 1fr; gap: 12px; }
  .budget-metric-group > div > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
  .budget-metric-group small { min-height: 0; max-width: 55%; }
  .budget-metric-group strong { font-size: 20px; margin-top: 0; }
  .budget-payment-row { font-size: 12px; }
}

.project-finances .invoice-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(130px, .25fr) minmax(130px, .25fr);
  gap: 20px;
  padding: 12px 0 16px;
}
.invoice-amount { text-align: right; font-variant-numeric: tabular-nums; }
.invoice-amount strong { font-size: 15px; }
.invoice-amount small { font: 500 10px/1.4 var(--mono); text-transform: uppercase; }
.invoice-actions { display: flex; justify-content: flex-end; padding-top: 16px; }
.invoice-actions button { min-height: 40px; font-size: 12px; padding: 8px 12px; }
@media (max-width: 600px) {
  .project-finances .invoice-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .invoice-row > div:first-child { grid-column: 1 / -1; }
  .invoice-amount { text-align: left; }
  .invoice-actions { justify-content: flex-start; }
}

/* Two aligned roster lines: name/time, then role/status. */
@media (max-width: 700px) {
  body[data-surface="producer-overview"] .project-crew-member > summary {
    grid-template-columns: minmax(0, 1fr) auto 18px;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 4px 10px;
    padding: 14px 16px;
  }
  body[data-surface="producer-overview"] .project-crew-member > summary > .person { display: contents; }
  body[data-surface="producer-overview"] .project-crew-member > summary .crew-person-copy { display: contents; }
  body[data-surface="producer-overview"] .project-crew-member > summary .crew-person-name { grid-column: 1; grid-row: 1; margin: 0; }
  body[data-surface="producer-overview"] .project-crew-member > summary .crew-person-role { grid-column: 1; grid-row: 2; margin: 0; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-call-cell {
    grid-column: 2; grid-row: 1; align-self: center;
    font-size: 18px; line-height: 1.3;
  }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-call-cell::before { content: none; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-availability {
    grid-column: 2; grid-row: 2; justify-self: end; align-self: center;
    margin-left: 0; text-align: right; max-width: 120px; font-size: 10px; line-height: 1.35;
  }
  body[data-surface="producer-overview"] .project-crew-member > summary > .toggle { grid-column: 3; grid-row: 1 / 3; }
}
/* Roster summaries focus on identity and booking; call times live in details. */
@media (max-width: 700px) {
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-call-cell { display: none; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-availability {
    grid-column: 2; grid-row: 1 / 3; align-self: center;
  }
}
/* Desktop uses the same roster information and on-demand actions as mobile. */
@media (min-width: 701px) {
  body[data-surface="producer-overview"] .project-crew-head,
  body[data-surface="producer-overview"] .project-crew-member > summary { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 165px 20px; gap: 16px; }
  body[data-surface="producer-overview"] .project-crew-member > summary { padding: 14px 20px; min-height: 64px; }
  body[data-surface="producer-overview"] .project-crew-member > summary .avatar,
  body[data-surface="producer-overview"] .project-crew-member > summary .crew-person-role,
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-call-cell,
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-sheet-cell,
  .project-crew-head > span:nth-child(4), .project-crew-head > span:nth-child(5) { display: none; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .person { grid-column: 1; grid-row: 1; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-role-cell { display: block; grid-column: 2; grid-row: 1; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .crew-availability { grid-column: 3; grid-row: 1; margin: 0; padding: 0; border: 0; }
  body[data-surface="producer-overview"] .project-crew-member > summary > .toggle { grid-column: 4; grid-row: 1; }
  .crew-mobile-sheet-action { display: block; margin-bottom: 14px; }
}
/* Readiness is one row; management actions share a separate, aligned row. */
.project-crew-member .member-expanded { padding: 16px 20px; }
.member-management-bar { display: grid; gap: 12px; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.member-readiness { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.member-readiness .badge { margin: 0; font: 500 11px/1.4 var(--font-body); text-transform: none; letter-spacing: 0; }
.member-action-strip { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)) auto; gap: 8px; align-items: stretch; }
.member-action-strip:has(> [data-share-call-sheet]) { grid-template-columns: repeat(3,minmax(0,1fr)) auto; }
.member-action-strip .booking-panel-compact { display: contents; }
.member-action-strip > .crew-mobile-sheet-action { display: block; margin: 0; min-width: 0; }
.member-action-strip > button,
.member-action-strip > .crew-mobile-sheet-action > :is(a,button),
.member-action-strip .menu > summary { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 100%; min-height: 44px; margin: 0; padding: 10px 12px; font: 500 13px/1.4 var(--font-body); text-align: center; }
.member-action-strip .menu { min-width: 0; }
.member-action-strip .menu-panel { top: calc(100% + 8px); }
.member-action-strip .menu-panel > button { font: 400 13px/1.4 var(--font-body); }
.member-action-strip .menu-panel > [data-remove-assignment] { border-top: 1px solid var(--line); border-radius: 0 0 8px 8px; margin-top: 4px; }
.member-action-strip .booking-panel-compact > :is(.error,.booking-note,.badge) { grid-column: 1 / -1; order: 1; margin: 0; font-size: 12px; }
.member-action-strip .booking-note { color: var(--muted); }
.member-action-strip .booking-panel-compact > .error:empty { display: none; }
.member-expanded .section-heading { margin: 12px 0 8px; }
.member-expanded > h3 { margin: 16px 0 8px; }
.member-expanded > .section-heading > h3,
.member-expanded > h3,
.member-expanded > .disclosure > summary > span:first-child { font: 650 15px/1.3 var(--font-heading); letter-spacing: -.03em; }
.member-expanded .member-no-gear { margin: 12px 0; }
@media (max-width: 700px) {
  .project-crew-member .member-expanded { padding: 14px 16px; }
  .member-action-strip .menu > summary { width: 44px; padding: 8px; font-size: 0; gap: 0; }
  .member-action-strip .menu > summary .toggle { display: none; }
  .member-action-strip .menu > summary::after { content: "⋯"; font: 500 20px/1 var(--font-body); }
  .member-action-strip:has(> [data-share-call-sheet]) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .member-action-strip:has(> [data-share-call-sheet]) .menu > summary { width: 100%; padding: 10px 12px; font-size: 13px; gap: 8px; }
  .member-action-strip:has(> [data-share-call-sheet]) .menu > summary .toggle { display: block; }
  .member-action-strip:has(> [data-share-call-sheet]) .menu > summary::after { content: none; }
  .member-action-strip .menu-panel { left: auto; right: 0; }
}
.publish-review-dialog { width: min(780px, calc(100vw - 24px)); }
.publish-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.publish-metrics > div { border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.publish-metrics strong { display:block; font-size:24px; }
.publish-metrics small { color:var(--muted); font-size:11px; }
.publication-changes,.publish-readiness { list-style:none; padding:0; margin:12px 0; }
.publication-changes li,.publish-readiness li { border-bottom:1px solid var(--line); padding:10px 0; }
.publication-changes strong,.publication-changes small,.publish-readiness small { display:block; }
.publication-changes small,.publish-readiness span,.publish-readiness small { color:var(--muted); font-size:12px; line-height:1.5; }
.publication-kind { font:500 10px/1.4 var(--mono); color:var(--accent); }
.publication-warning { color:var(--warning); padding:10px 12px; border:1px solid color-mix(in srgb,var(--warning) 35%,transparent); border-radius:8px; font-size:13px; }
.production-readiness { margin:0 0 20px; border:1px solid var(--line); border-left:3px solid var(--warning); border-radius:8px; padding:12px 16px; }
.production-readiness h2 { margin:0 0 8px; font:500 13px/1.4 var(--font-body); }
.production-readiness > div { display:flex; flex-wrap:wrap; gap:8px 16px; }
.production-readiness button,.production-readiness a { border:0; background:none; padding:6px 0; min-height:40px; font:400 12px/1.4 var(--font-body); color:var(--ink); text-decoration:none; text-align:left; }
.production-readiness :is(button,a):hover { color:var(--accent); }
@media(max-width:650px) { .production-readiness > div { display:grid; grid-template-columns:1fr; gap:0; } }

/* Review source and release status match the Post-production deliverable. */
.client-visibility-table th:first-child { width: 68px; }
.client-visibility-table th:nth-child(2) { width: 27%; }
.client-visibility-table th:nth-child(3) { width: 14%; }
.client-visibility-table th:nth-child(5) { width: 160px; }
.client-visibility-table th:nth-child(6) { width: 172px; }
.review-deliverable-group { color: var(--muted); font: 400 13px/1.5 var(--font-body); }
.client-visibility-table :is(th,td) { padding: 12px 16px; vertical-align: middle; }
.client-visibility-table th { padding-block: 4px; }
.client-visibility-table :is(th,td):nth-child(n+5) { text-align: center; }
.client-visibility-table .quick-edit-status { width: 144px; max-width: 100%; margin-inline: auto; }
.client-visibility-table .quick-edit-status select.badge { border-radius: 8px; padding-inline: 8px; font-size: 12px; }
.client-visibility-table .column-sort { min-height: 44px; width: 100%; justify-content: flex-start; gap: 10px; }
.client-visibility-table th:nth-child(n+5) .column-sort { justify-content: center; }
.client-visibility-table .column-sort:hover { color: var(--accent); }
.client-visibility-table .column-sort [data-sort-arrow] { flex: none; font-size: 14px; }
.review-mobile-sort { display: none; }
.review-video-source { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-width: 0; }
.review-video-identity { display: grid; flex: 1 1 140px; gap: 3px; min-width: 0; }
.review-video-identity > span { overflow-wrap: anywhere; font: 400 13px/1.5 var(--font-body); }
.review-video-identity > small { font: 400 12px/1.5 var(--font-body); color: var(--muted); }
.review-video-source > button { min-height: 44px; gap: 8px; font: 500 12px/1.4 var(--font-body); padding: 8px 12px; }
.review-video-plus { flex: none; font: 400 16px/1 var(--font-body); }
.review-video-identity + button { flex: none; border-color: transparent; color: var(--muted); padding-inline: 6px; }
.review-video-identity + button:hover { color: var(--accent); }
@media (max-width: 800px) {
  .review-table-tools { display: grid; gap: 12px; }
  .review-mobile-sort { display: flex; flex-direction: row; align-items: center; gap: 12px; font: 400 12px/1.5 var(--font-body); letter-spacing: 0; }
  .review-mobile-sort select { flex: 1; width: auto; min-width: 0; }
  .client-visibility-table tr { position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; padding: 16px; }
  .client-visibility-table td { padding: 0; min-width: 0; }
  .client-visibility-table td:first-child { position: absolute; top: 16px; right: 16px; padding: 0; }
  .client-visibility-table td:nth-child(2) { grid-column: 1 / -1; padding-right: 34px; }
  .client-visibility-table td:nth-child(3) { grid-column: 1 / -1; }
  .client-visibility-table td:nth-child(3):has(.review-deliverable-group) { margin-top: -8px; }
  .client-visibility-table td:nth-child(4) { grid-column: 1 / -1; }
  .client-visibility-table td:nth-child(5) { grid-column: 1; }
  .client-visibility-table td:nth-child(6) { grid-column: 2; }
  .client-visibility-table td:nth-child(-n+4)::before { display: none; }
  .client-visibility-table td:nth-child(n+5) { display: flex; flex-direction: column; gap: 6px; margin: 0; }
  .client-visibility-table td:nth-child(n+5)::before { margin-bottom: 0; }
  .client-visibility-table .quick-edit-status, .client-visibility-table [data-toggle-visible] { width: 100%; }
}

@media (min-width: 801px) {
  .client-visibility-table { overflow-x: auto; }
  .client-visibility-table table { min-width: 1000px; }
  .client-visibility-table :is(th,td):first-child { padding-left: 24px; padding-right: 20px; }
  .client-visibility-table :is(th,td):nth-child(2) { padding-left: 24px; }
}

/* Company-branded review workspace, matching the original player/comments layout. */
.media-picker-dialog { width: min(640px, calc(100vw - 32px)); padding: 20px; }
.media-picker-dialog .modal-head { align-items: flex-start; gap: 16px; margin-bottom: 8px; }
.media-picker-dialog .modal-head .eyebrow { margin: 0 0 6px; color: var(--accent); font: 400 10px/1.5 var(--mono); letter-spacing: .08em; }
.media-picker-dialog .modal-head h2 { margin: 0; font: 500 20px/1.3 var(--font-body); }
.media-picker-dialog .media-picker-context { margin: 0 0 20px; color: var(--muted); font: 400 13px/1.6 var(--font-body); overflow-wrap: anywhere; }
.media-picker-dialog .media-picker-list { gap: 0; margin: 0; border-top: 1px solid var(--line); }
.media-picker-dialog .media-picker-item { display: flex; justify-content: flex-start; gap: 12px; width: 100%; min-height: 64px; padding: 12px 8px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; text-align: left; }
.media-picker-dialog .media-picker-item:hover { background: color-mix(in srgb,var(--accent) 5%,transparent); }
.media-picker-icon { flex: none; display: grid; place-items: center; width: 32px; color: var(--accent); }
.media-picker-icon .ui-icon { width: 22px; height: 22px; }
.media-picker-copy { display: grid; gap: 3px; flex: 1; min-width: 0; }
.media-picker-copy strong { font: 400 14px/1.5 var(--font-body); color: var(--ink); overflow-wrap: anywhere; }
.media-picker-copy small { font: 400 11px/1.5 var(--font-body); color: var(--muted); }
.media-picker-next { flex: none; font-size: 18px; color: var(--muted); }
.media-picker-dialog [data-root] { border: 0; padding: 0; margin-bottom: 8px; color: var(--muted); font: 400 12px/1.5 var(--font-body); }
.media-picker-dialog [data-root]::before { content: "←"; }
.media-picker-dialog [data-remove-video] { margin-top: 16px; font: 400 12px/1.5 var(--font-body); }
.media-picker-dialog [role="alert"]:empty { display: none; }
.branded-review-dialog { padding: 0; width: min(1440px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: hidden; background: var(--surface); }
.branded-review-dialog .review-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.branded-review-dialog .review-dialog-heading h2 { margin: 0; font: 650 20px/1.3 var(--font-heading); }
.branded-review-dialog [data-close] { display: grid; place-items: center; width: 44px; min-width: 44px; height: 44px; padding: 0; border: 0; outline: none; background: transparent; box-shadow: none; border-radius: 0; }
.branded-review-dialog [data-close]:hover { background: transparent; color: var(--accent); }
body:not([data-keyboard-navigation="true"]) .branded-review-dialog [data-close]:focus-visible { outline: none; box-shadow: none; }
body[data-keyboard-navigation="true"] .branded-review-dialog [data-close]:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; color: var(--accent); }
.branded-review-dialog [data-close] svg { width: 28px; height: 28px; pointer-events: none; }
.branded-review-dialog .review-dialog-grid { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 0; max-height: calc(100dvh - 140px); overflow: auto; }
.branded-review-dialog .review-watch { display: flex; flex-direction: column; padding: 0; min-width: 0; background: var(--bg); }
.branded-review-dialog .review-player { display: flex; flex-direction: column; flex: 1 0 auto; background: var(--bg); border: 0; border-radius: 0; overflow: hidden; }
.branded-review-dialog video { flex: none; display: block; width: 100%; aspect-ratio: 16/9; max-height: calc(100dvh - 208px); border-radius: 0; object-fit: contain; background: #000; cursor: pointer; }
.branded-review-dialog .review-player-controls { flex: 1; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 68px; padding: 12px 16px; background: transparent; }
.branded-review-dialog .review-player-controls button { flex: none; display: grid; place-items: center; padding: 6px; width: 44px; min-height: 44px; font: 500 11px/1.2 var(--font-body); }
.branded-review-dialog .review-player-controls :is([data-play],[data-mute],[data-fullscreen]) { background: transparent; border: 0; box-shadow: none; color: var(--muted); border-radius: 0; }
.branded-review-dialog .review-player-controls :is([data-play],[data-mute],[data-fullscreen]):is(:hover,:focus-visible) { background: transparent; color: var(--accent); }
.branded-review-dialog .review-player-controls [data-play] { color: var(--accent); }
.branded-review-dialog .review-play-triangle { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.branded-review-dialog [data-play][data-playing="true"] .review-play-triangle { fill: currentColor; }
.branded-review-dialog [data-mute][data-audible="true"] { color: var(--accent); }
.branded-review-dialog .review-sound-muted { display: none; }
.branded-review-dialog [data-muted="true"] .review-sound-waves { display: none; }
.branded-review-dialog [data-muted="true"] .review-sound-muted { display: block; }
.branded-review-dialog .review-player-controls button svg { display: block; pointer-events: none; }
.branded-review-dialog .review-player-controls span { flex: none; font: 11px/1.4 var(--mono); color: var(--muted); }
.branded-review-dialog .review-timeline { flex: 1; min-width: 30px; position: relative; display: flex; align-items: center; height: 44px; padding: 0; }
.branded-review-dialog .review-timeline input { display: block; width: 100%; min-width: 0; padding: 0; margin: 0; height: 44px; min-height: 44px; accent-color: var(--accent); border: 0; border-radius: 0; cursor: pointer; }
.branded-review-dialog .review-markers { position: absolute; left: 5px; right: 5px; top: calc(50% + 8px); height: 9px; pointer-events: none; }
.branded-review-dialog .review-markers button { pointer-events: auto; position: absolute; top: 0; transform: translateX(-50%); width: 7px; min-width: 7px; height: 7px; min-height: 7px; padding: 0; border: 0; border-radius: 50%; background: var(--accent); }
.branded-review-dialog .review-player:fullscreen { display: flex; flex-direction: column; justify-content: center; }
.branded-review-dialog .review-player:fullscreen video { height: calc(100dvh - 68px); max-height: calc(100dvh - 68px); }
.branded-review-dialog .review-feedback { padding: 18px; min-width: 0; min-height: 0; max-height: calc(100dvh - 140px); overflow-y: auto; border-left: 1px solid var(--line); display: flex; flex-direction: column; }
.branded-review-dialog .review-feedback .topline { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.branded-review-dialog .review-feedback h3 { margin: 0; font: 600 15px/1.4 var(--font-body); }
.branded-review-dialog .review-feedback h3 span { color: var(--muted); margin-left: 6px; font-size: 11px; }
.branded-review-dialog [data-refresh], .branded-review-dialog [data-retry] { font: 500 12px/1.4 var(--font-body); min-height: 44px; padding: 8px 10px; }
.branded-review-dialog .review-note-list { height: clamp(120px,28dvh,300px); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; margin: 8px 0 14px; }
.branded-review-dialog .review-note { border-top: 1px solid var(--line); padding: 14px 0; }
.branded-review-dialog .review-comment-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.branded-review-dialog .review-comment-avatar { display: grid; place-items: center; flex: none; width: 25px; height: 25px; border-radius: 50%; color: var(--accent); background: var(--bg); font-size: 11px; }
.branded-review-dialog .review-comment-head strong { font-size: 12px; overflow-wrap: anywhere; }
.branded-review-dialog .review-comment-date { margin-left: auto; font-size: 10px; color: var(--muted); }
.branded-review-dialog .review-comment-head [data-seek] { min-height: 32px; padding: 4px 8px; color: var(--accent); font: 11px/1.4 var(--mono); }
.branded-review-dialog .review-note p { margin: 8px 0 5px 33px; font-size: 13px; overflow-wrap: anywhere; white-space: pre-wrap; }
.branded-review-dialog .review-sync-ok, .branded-review-dialog .review-sync-pending { display: block; margin-left: 33px; font-size: 10px; color: var(--muted); }
.branded-review-dialog .review-note-form { border-top: 1px solid var(--line); padding-top: 14px; }
.branded-review-dialog .review-note-form label { font: 400 12px/1.4 var(--font-body); gap: 6px; margin-bottom: 10px; letter-spacing: 0; text-transform: none; }
.branded-review-dialog .review-note-form input, .branded-review-dialog .review-note-form textarea { padding: 9px 10px; font: 400 13px/1.5 var(--font-body); min-height: 44px; }
.branded-review-dialog .review-note-form textarea { min-height: 78px; resize: vertical; }
.branded-review-dialog .review-note-form .actions { display: grid; grid-template-columns: 1fr; width: 100%; gap: 8px; }
.branded-review-dialog .review-note-form .primary { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; font: 600 13px/1.4 var(--font-body); min-height: 46px; }
.branded-review-dialog .review-save-state:empty { display: none; }
.branded-review-dialog .review-timestamp { display: flex; align-items: center; gap: 8px; }
.branded-review-dialog .review-timestamp input { min-height: 0; }
.branded-review-dialog .review-video-error:empty { display: none; }
.branded-review-dialog .review-video-error:not(:empty) { margin: 0; padding: 0 16px 16px; }
.branded-review-dialog .review-watch > a { display: inline-flex; margin: 0 16px 16px; font: 400 12px/1.5 var(--font-body); }
.branded-review-dialog .review-loading { display: grid; grid-template-columns: minmax(0,1fr) 340px; min-height: 320px; }
.branded-review-dialog .review-loading-stage { display: grid; place-content: center; color: var(--muted); background: var(--bg); }
.branded-review-dialog .review-loading-sidebar { border-left: 1px solid var(--line); }
@media (max-width: 750px) {
  .branded-review-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); overflow: auto; }
  .branded-review-dialog .review-dialog-heading { padding: 12px 14px; }
  .branded-review-dialog .review-dialog-heading h2 { font-size: 17px; }
  .branded-review-dialog .review-dialog-grid, .branded-review-dialog .review-loading { grid-template-columns: 1fr; max-height: none; overflow: visible; }
  .branded-review-dialog .review-watch { padding: 0; }
  .branded-review-dialog video { max-height: 42dvh; }
  .branded-review-dialog .review-feedback { max-height: none; overflow: visible; border-left: 0; border-top: 1px solid var(--line); padding: 14px; }
  .branded-review-dialog .review-note-list { height: 220px; max-height: 30dvh; }
  .branded-review-dialog .review-player-controls { gap: 6px; min-height: 60px; padding: 8px; }
}
.branded-review-dialog .review-note-form .review-timestamp { display: flex; flex-direction: row; justify-content: flex-start; align-items: center; gap: 8px; }
.branded-review-dialog .review-timestamp input { flex: none; width: 22px; height: 22px; margin: 0; }

.branded-review-dialog .review-note-form .review-timestamp input[type="checkbox"] { box-sizing: border-box; flex: 0 0 22px; width: 22px; height: 22px; min-width: 22px; min-height: 22px; max-width: 22px; max-height: 22px; padding: 0; aspect-ratio: 1; border-radius: 50%; }
.branded-review-dialog .review-note-form .review-timestamp { min-height: 44px; }
.branded-review-dialog .review-timeline input { appearance: none; -webkit-appearance: none; background: transparent; }
.branded-review-dialog .review-timeline input::-webkit-slider-runnable-track { height: 3px; border-radius: 99px; background: linear-gradient(to right, var(--accent) 0 var(--review-progress,0%), var(--line) var(--review-progress,0%) 100%); }
.branded-review-dialog .review-timeline input::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 9px; height: 9px; margin-top: -3px; border: 0; border-radius: 50%; background: var(--accent); }
.branded-review-dialog .review-timeline input::-moz-range-track { height: 3px; border-radius: 99px; background: var(--line); }
.branded-review-dialog .review-timeline input::-moz-range-progress { height: 3px; background: var(--accent); }
.branded-review-dialog .review-timeline input::-moz-range-thumb { width: 9px; height: 9px; border: 0; border-radius: 50%; background: var(--accent); }
@media (prefers-reduced-motion: no-preference) { .branded-review-dialog .review-player-controls button, .branded-review-dialog .review-play-triangle { transition: color 120ms ease, fill 120ms ease; } }

.client-video-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.client-video-actions :is(button,.button) { min-height: 44px; padding: 10px 14px; white-space: nowrap; font: 600 12px/1.4 var(--font-body); }
.client-video-actions [data-download-video] { color: var(--accent); }
.client-download-toolbar { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 12px; margin: 0 0 16px; }
.client-download-toolbar small { color: var(--muted); font-size: 12px; }
.client-download-toolbar button { min-height: 44px; color: var(--accent); }
.client-download-state {
  position: fixed;
  inset: auto 16px max(20px, env(safe-area-inset-bottom));
  z-index: 10001;
  width: fit-content;
  max-width: min(520px, calc(100vw - 32px));
  margin: 0 auto;
  padding: 12px 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 8px 30px #0005;
  color: var(--accent);
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
  pointer-events: none;
}
.client-download-state:empty { display: none; }
.client-download-state.error { color: var(--danger); }
@media(max-width:650px) {
  .client-video-actions { justify-content: flex-start; }
  .client-video-actions :is(button,.button) { flex: 1; }
  .client-download-toolbar { justify-content: flex-start; }
}

@font-face { font-family: "Approval Script"; src: url("/assets/damion-regular.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: block; }
/* Keep fall and fade on independent timelines; particles use only 2D rotation. */
.approval-confetti { position: fixed; inset: 0; z-index: 10000; overflow: hidden; contain: layout paint style; pointer-events: none; user-select: none; }
.approval-celebration-label { position: absolute; inset: 0; display: grid; place-items: center; padding: 20px; color: #c5f45b; font: 400 clamp(72px,15vw,180px)/1.3 "Approval Script", cursive; text-shadow: 0 3px 8px #000, 0 0 40px #000c; transform: rotate(-6deg); animation: approval-celebration-fade 4.1s ease both; }
@keyframes approval-celebration-fade { 0% { opacity: 0; } 8%,78% { opacity: 1; } 100% { opacity: 0; } }
.approval-confetti i { position: absolute; top: -20px; display: block; border-radius: 1px; opacity: 0; transform: translate3d(0,-20px,0) rotate(var(--confetti-tilt)); will-change: transform, opacity; animation: approval-confetti-fall var(--confetti-duration) calc(var(--confetti-delay) + 80ms) linear both, approval-confetti-fade var(--confetti-duration) calc(var(--confetti-delay) + 80ms) linear both; }
@keyframes approval-confetti-fall {
  from { transform: translate3d(0,-20px,0) rotate(var(--confetti-tilt)); }
  to { transform: translate3d(var(--confetti-drift),var(--confetti-drop,calc(100dvh + 50px)),0) rotate(calc(var(--confetti-tilt) + 600deg)); }
}
@keyframes approval-confetti-fade {
  0% { opacity: 0; }
  6%, 85% { opacity: 1; }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .approval-confetti i { display: none; animation: none; } .approval-celebration-label { animation: none; } }

/* Files and links reuse this editor in project dialogs and inline project forms. */
.project-files-editor { display: grid; gap: 24px; min-width: 0; }
.project-files-editor .project-files-heading { margin-bottom: 14px; }
.project-files-editor h3 { margin: 0; color: var(--ink); font: 500 15px/1.4 var(--font-body); }
.project-files-editor p { margin: 5px 0 0; color: var(--muted); font: 400 13px/1.5 var(--font-body); }
.project-files-editor .project-files-links > .actions { margin: 14px 0 0; justify-content: flex-start; }
.project-files-editor .project-files-upload { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 16px; border: 1px dashed var(--line); border-radius: 10px; background: var(--bg); }
.project-upload-copy { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1 1 240px; }
.project-upload-copy > .ui-icon { flex: 0 0 22px; width: 22px; height: 22px; color: var(--accent); }
.project-files-upload [data-choose-upload] { flex: none; }
.project-files-list:empty, .project-files-editor > :is([role="alert"],[role="status"]):empty { display: none; }
.project-files-editor > [role="alert"] { color: #ff8d80; }
.project-files-editor > [role="status"] { color: var(--accent); }
.project-file-kind { flex: 0 0 20px; color: var(--accent); }
.project-file-name { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.project-file-name strong { display: block; font: 500 14px/1.5 var(--font-body); color: var(--ink); }
.project-file-name small { display: block; margin-top: 2px; font: 400 11px/1.5 var(--font-body); color: var(--muted); }
.project-files-editor .managed-file-row { gap: 12px; padding: 12px 0; }
.project-files-editor .managed-file-row > button { flex: none; font: 500 12px/1.4 var(--font-body); padding: 8px 12px; }
@media (max-width: 650px) {
  .project-files-editor { gap: 20px; }
  .project-files-upload [data-choose-upload] { width: 100%; }
}
.delivery-report-dialog {
  width: min(680px, calc(100vw - 32px));
}
.delivery-report-dialog .modal-head {
  margin-bottom: 12px;
}
.delivery-report-dialog .delivery-report-intro {
  margin: 0 0 24px;
  max-width: 56ch;
  color: var(--muted);
}
.delivery-report-section + .delivery-report-section {
  margin-top: 24px;
}
.delivery-report-dialog .delivery-report-section h3 {
  margin: 0;
  font: 500 14px/1.5 var(--font-body);
  letter-spacing: 0;
}
.delivery-report-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 16px;
  margin-bottom: 12px;
}
.delivery-report-heading > span {
  color: var(--muted);
  font: 400 12px/1.5 var(--font-body);
}
.delivery-report-totals {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: 10px;
  margin: 12px 0 0;
}
.delivery-report-totals > div {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
}
.delivery-report-totals dt {
  display: flex;
  align-items: center;
  gap: 7px;
  font: 400 12px/1.5 var(--font-body);
  color: var(--muted);
}
.delivery-report-totals dd {
  margin: 0;
  font: 500 28px/1.1 var(--font-body);
  font-variant-numeric: tabular-nums;
}
.delivery-report-totals dt > span,
.delivery-read-status > span {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: currentColor;
}
.delivery-report-totals [data-delivery-state="sent"] dt > span {
  color: var(--accent);
}
.delivery-report-totals [data-delivery-state="failed"] dt > span {
  color: #ff8d80;
}
.delivery-report-totals [data-delivery-state="pending"] dt > span,
.delivery-report-totals [data-delivery-state="sending"] dt > span {
  color: #edc66d;
}
.delivery-report-inbox {
  border-radius: 8px;
  overflow: hidden;
}
.delivery-report-inbox table {
  display: table;
}
.delivery-report-inbox thead {
  display: table-header-group;
}
.delivery-report-inbox tbody {
  display: table-row-group;
}
.delivery-report-inbox tr {
  display: table-row;
  padding: 0;
}
.delivery-report-inbox th {
  padding: 10px 16px;
  font: 400 11px/1.5 var(--font-body);
  letter-spacing: 0;
  text-transform: none;
}
.delivery-report-inbox th:nth-child(1) {
  width: 40%;
}
.delivery-report-inbox th:nth-child(2) {
  width: 36%;
}
.delivery-report-inbox th:last-child {
  width: 24%;
  text-align: right;
}
.delivery-report-inbox td {
  display: table-cell;
  padding: 14px 16px;
  border-top: 1px solid var(--line);
  margin: 0;
  font: 400 13px/1.5 var(--font-body);
  vertical-align: middle;
}
.delivery-report-inbox td::before {
  display: none;
}
.delivery-report-inbox td:first-child {
  font-weight: 500;
}
.delivery-report-inbox td:last-child {
  text-align: right;
}
.delivery-report-inbox time {
  display: block;
  font-size: 12px;
}
.delivery-report-inbox time small {
  display: block;
  color: var(--muted);
  font: 400 11px/1.5 var(--font-body);
  margin-top: 2px;
}
.delivery-read-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font: 400 12px/1.5 var(--font-body);
  white-space: nowrap;
}
.delivery-read-status[data-read="true"] {
  color: var(--accent);
}
.delivery-report-dialog .delivery-report-empty {
  margin: 12px 0 0;
  padding: 16px;
  background: var(--bg);
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  font: 400 13px/1.5 var(--font-body);
}
.delivery-report-dialog > form > .error:empty {
  display: none;
}
@media (max-width: 500px) {
  .delivery-report-inbox thead {
    display: none;
  }
  .delivery-report-inbox tbody {
    display: block;
  }
  .delivery-report-inbox tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
    padding: 14px;
  }
  .delivery-report-inbox td {
    display: block;
    padding: 0;
    border: 0;
  }
  .delivery-report-inbox td:first-child {
    grid-column: 1;
    grid-row: 1;
  }
  .delivery-report-inbox td:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }
  .delivery-report-inbox td:last-child {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
  }
  .delivery-report-inbox time small {
    display: inline;
    margin: 0 0 0 8px;
  }
  .delivery-report-dialog .form-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }
}
