/* v4: continuous rows, left-side combination brackets, one status control. */
.checklist-table{table-layout:fixed;min-width:0!important;border-collapse:collapse;border-spacing:0}
.checklist-table th{position:relative;overflow:visible;white-space:normal;padding:10px 7px}
.checklist-table td{overflow:hidden;overflow-wrap:anywhere;padding:8px 7px}
.checklist-table .company{font-size:calc(12px * var(--ui-scale,1))}
.checklist-table .subline{font-size:calc(10px * var(--ui-scale,1));white-space:normal}
.checklist-table .combined-row td,.checklist-table .combo-first td,.checklist-table .combo-last td{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.checklist-table .combined-row td:first-child,.checklist-table .combined-row td:last-child{border-left:0;border-right:0}
.checklist-table td.traffic-cell{position:relative;padding-left:17px;overflow:visible}
.combo-rail{position:absolute;left:4px;top:-1px;bottom:-1px;width:9px;border-left:3px solid var(--combo-color);pointer-events:auto}
.combo-first .combo-rail{top:10px;border-top:3px solid var(--combo-color);border-radius:5px 0 0 0}
.combo-last .combo-rail{bottom:10px;border-bottom:3px solid var(--combo-color);border-radius:0 0 0 5px}
.combo-first.combo-last .combo-rail{border-radius:5px 0 0 5px}
.column-resize{position:absolute;right:-3px;top:0;bottom:0;width:9px;cursor:col-resize;touch-action:none;z-index:3}
.column-resize:hover,.column-resize:focus-visible{background:#527e9c50;outline:1px solid #527e9c}
.checklist-table .status-select.compact-status,.status-select.compact-status{display:inline-block;width:36px;min-width:36px;max-width:36px;height:34px;padding:2px;text-align:center;text-align-last:center;color:var(--text);font-size:19px;appearance:none;-webkit-appearance:none;background-image:none}
.status-select.compact-status option{font-size:18px;text-align:center}
.status-select.status-complete{color:#267549;background:#e3f3e9}.status-select.status-awaiting{color:#3976a8;background:#eaf3fa}.status-select.status-todo{color:#164d76;background:#d2e8f8}.status-select.status-na{font-size:10px}
.maj-count-button{display:inline-flex;gap:6px;align-items:center;justify-content:center;min-width:44px;min-height:34px;border:1px solid #d1dbe3;border-radius:7px;padding:4px 7px;background:#fff;font-size:13px;color:#637888}
.maj-count-button.status-pending{background:#eaf3fa;color:#3976a8}.maj-count-button.status-todo{background:#d2e8f8;color:#164d76}.maj-count-button.status-complete{background:#e3f3e9;color:#267549}.maj-count-button.maj-overdue{border-color:#b84b4b;box-shadow:inset 0 -2px #b84b4b}
:root[data-density=compact] .checklist-table td{padding-top:4px;padding-bottom:4px}:root[data-density=comfortable] .checklist-table td{padding-top:13px;padding-bottom:13px}
.calendar-day.has-travel,.calendar-day.has-travel.weekend,.calendar-day.has-travel.past{background:#edf5fc}
.calendar-day .day-content .cal-chip.audit-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center!important;min-height:48px}
.calendar-day .day-content .cal-chip.audit-chip strong,.calendar-day .day-content .cal-chip.audit-chip span{display:block;width:100%;text-align:center!important;margin-left:auto;margin-right:auto}
.calendar-day .day-content{align-content:center}.calendar-day.has-audit{display:flex;flex-direction:column}.calendar-day.has-audit .day-content{flex:1}
.cal-flight-line{display:flex!important;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;margin:0!important;opacity:1!important}
.cal-flight-line .cal-departure{display:inline;font-size:9px;font-weight:500;margin:0;opacity:.8}.cal-flight-line .cal-plane{display:inline;font-size:13px;margin:0;opacity:1}.cal-flight-line .cal-arrival{display:inline;font-size:11px;font-weight:700}
.arrival-priority .cal-flight-line .cal-arrival{font-size:13px;font-weight:850}
.share-link-field{display:grid;gap:6px}.share-link-field input{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px}
.mobile-combined-group{position:relative;border:0;border-radius:0;background:transparent;padding:0 0 0 13px;gap:0}
.mobile-combined-group:before{content:"";position:absolute;left:1px;top:8px;bottom:8px;width:9px;border:3px solid var(--combo-color);border-right:0;border-radius:6px 0 0 6px}
.mobile-combined-group .audit-card{border-radius:0;margin:0}.mobile-combined-group .audit-card:first-child{border-radius:10px 10px 0 0}.mobile-combined-group .audit-card:last-child{border-radius:0 0 10px 10px}
@media(max-width:780px){.status-select.compact-status,.mobile-cards .status-select.compact-status{width:42px;min-width:42px;max-width:42px;height:42px}.maj-count-button{min-height:42px}.cal-flight-line{gap:2px}.cal-flight-line .cal-departure{font-size:7px}.cal-flight-line .cal-arrival,.arrival-priority .cal-flight-line .cal-arrival{font-size:9px}.cal-flight-line .cal-plane{font-size:10px}}

/* v4.0.1 cosmetic-only checklist / flights alignment fixes. */
/* Checklist: all headings centered; data centered except Customer and Hotel. */
.checklist-table th{
  text-align:center!important;
  vertical-align:middle;
}
.checklist-table td{
  text-align:center;
  vertical-align:middle;
}
.checklist-table td:nth-child(7),
.checklist-table td:nth-child(11){
  text-align:left;
}

/* Keep compact N/A states contained inside their controls/cells. */
.checklist-table .compact-na,
.checklist-table .status-select.status-na{
  box-sizing:border-box;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  font-size:9px!important;
  line-height:1;
  letter-spacing:-.02em;
}

/* Flights checklist cell: Trip and status stay side by side. */
.checklist-table .checklist-flights-cell{
  white-space:nowrap;
}
.checklist-table .checklist-flights-cell .link-btn{
  display:inline-flex;
  align-items:center;
  margin:0 5px 0 0;
  vertical-align:middle;
}
.checklist-table .checklist-flights-cell .status-select{
  vertical-align:middle;
}

/* Past audits must use one continuous background regardless of column rules. */
.checklist-table tbody tr.past-row>td{
  background:#edf7ef!important;
}

/* Restore the visual divider between Actions and Invoice, including combined rows. */
.checklist-table th:nth-child(20),
.checklist-table td:nth-child(20){
  border-left:3px solid #fff!important;
}

/* Keep the combined bracket outside the traffic-light column in a small left gutter. */
.checklist-table{
  margin-left:16px;
}
.checklist-table td.traffic-cell{
  padding-left:7px;
  overflow:visible!important;
}
.combo-rail{
  left:-13px;
  z-index:2;
}

/* Flights: center only the transfer duration while leaving the transfer location readable. */
.flight-table .transfer-row td{
  position:relative;
}
.flight-table .transfer-row .transfer-time{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  margin:0;
  text-align:center;
  white-space:nowrap;
}

/* Miles: status styling belongs to the control, never the whole red-status cell. */
.flight-table td.miles-cell.miles-0{
  background:transparent!important;
}
.flight-table .miles-select.miles-0{
  background:#faeeee;
  border-color:#dfb5b5;
  color:#a14d4d;
}

/* Next-day arrival indicator stays visible but neutral. */
.flight-table .day-offset{
  background:transparent;
  color:#738391;
  border-radius:0;
  padding:0;
  margin-left:3px;
  font-weight:700;
}

/* Ticket class: no full badge fill; Business/First keep only a subtle gold accent. */
.flight-table .cabin-badge{
  background:transparent;
  border:1px solid transparent;
  border-radius:4px;
  padding:2px 0;
  color:#74818b;
}
.flight-table .cabin-badge.premium{
  background:transparent;
  border-color:#d8c59a;
  color:#947434;
  padding:2px 5px;
}

/* v4.0.2 checklist layout refinements. */
/* Lock the Trip control first and the Flights status control second on one line. */
.checklist-table .checklist-flight-controls{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  flex-wrap:nowrap;
  max-width:100%;
  white-space:nowrap;
  vertical-align:middle;
}
.checklist-table .checklist-flight-controls .link-btn{
  margin:0;
  flex:0 1 auto;
  white-space:nowrap;
}
.checklist-table .checklist-flight-controls .status-select{
  flex:0 0 auto;
  margin:0;
}

/* Mobile portrait: Dates, Flights, Hotel and AP Sent form one four-column row. */
@media (max-width:780px) and (orientation:portrait){
  .mobile-cards .audit-card-status{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:5px;
  }
  .mobile-cards .audit-card-status label{
    display:grid;
    grid-template-rows:auto auto;
    justify-items:center;
    align-items:center;
    justify-content:stretch;
    gap:5px;
    min-width:0;
    padding:7px 3px;
    text-align:center;
    font-size:9px;
    line-height:1.1;
  }
  .mobile-cards .audit-card-status .compact-status{
    margin:0 auto;
  }
}

