.tool-personal .schedule-publication {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--zg-space-4);
  width: 100%;
  padding-block: var(--zg-space-2);
}
.tool-personal .schedule-publication p {
  margin: var(--zg-space-2) 0 0;
  color: var(--zg-text-secondary);
}
.tool-personal .schedule-publication-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--zg-space-3);
}
.tool-personal .schedule-publication-actions > div {
  display: grid;
  gap: var(--zg-space-1);
}
.tool-personal .schedule-content > .card {
  margin-block: 0;
  align-self: start;
}
.tool-personal .staffing-overview header {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  column-gap: var(--zg-space-2);
  align-items: center;
}
.tool-personal .staffing-overview header > :not(.staffing-collapse) {
  grid-column: 1;
}
.tool-personal .staffing-collapse {
  grid-column: 2;
  grid-row: 1 / 3;
  margin: 0;
}
.tool-personal .schedule-content.staffing-collapsed {
  grid-template-columns: 11rem minmax(0,1fr);
}
.tool-personal .staffing-overview.is-collapsed header {
  padding: var(--zg-space-3);
}
.tool-personal .staffing-overview.is-collapsed header > h2 {
  grid-column: 1 / -1;
  grid-row: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
.tool-personal .staffing-overview.is-collapsed header > p:last-child {
  grid-row: 2;
}
.tool-personal .staffing-overview.is-collapsed .staffing-collapse {
  grid-row: 2;
  justify-self: end;
}
.tool-personal .staffing-overview.is-collapsed :is(.eyebrow,.staffing-legend),
.tool-personal .staffing-overview.is-collapsed section > h3,
.tool-personal .staffing-overview.is-collapsed .staffing-row > div > small,
.tool-personal .staffing-overview.is-collapsed .staffing-row dl > div:not(:last-child) {
  display: none;
}
.tool-personal .staffing-overview.is-collapsed .staffing-row {
  padding: var(--zg-space-2) var(--zg-space-3);
  overflow-wrap: anywhere;
}
.tool-personal .staffing-overview.is-collapsed .staffing-row dl {
  display: block;
  margin-top: var(--zg-space-1);
}
.tool-personal .staffing-overview.is-collapsed .staffing-row dl > div {
  display: flex;
  align-items: baseline;
  gap: var(--zg-space-2);
}
@media (max-width: 1100px) {
  .tool-personal .schedule-content.staffing-collapsed { grid-template-columns: minmax(0,1fr); }
  .tool-personal .staffing-overview.is-collapsed section {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(10rem,1fr));
  }
}

/* Feature-local composition and data-driven hours charts. */
.tool-personal .staff-hours-context { padding-inline: var(--zg-space-3); }
.tool-personal .staff-hours-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.tool-personal .staff-hours-progress { display: grid; gap: var(--zg-space-2); margin-block: var(--zg-space-3); }
.tool-personal .staff-hours-chart p { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--zg-space-1); margin: 0 0 var(--zg-space-1); font-size: var(--zg-font-caption); }
.tool-personal .staff-hours-chart svg { display: block; inline-size: 100%; block-size: var(--zg-space-2); }
.tool-personal .staff-hours-track { fill: var(--zg-surface-subpanel); }
.tool-personal .staff-hours-fill { fill: var(--zg-accent-primary); }
.tool-personal .staff-hours-chart.is-planned .staff-hours-fill { fill: var(--zg-text-muted); }
.tool-personal .staff-plan-difference { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--zg-space-1); }
.tool-personal .staff-ledger { margin-block-start: var(--zg-space-3); border-block-start: 1px solid var(--zg-border-soft); padding-block-start: var(--zg-space-2); }
.tool-personal .staff-ledger-values,
.tool-personal .staff-ledger-explanation dl { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--zg-space-2); }
.tool-personal .staff-ledger-values > div,
.tool-personal .staff-ledger-explanation dl > div { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: var(--zg-space-1); }
.tool-personal .staff-ledger-explanation { font-size: var(--zg-font-caption); }
.tool-personal .staffing-overview.is-collapsed :is(.staff-hours-context,.staff-hours-metrics,.staff-hours-progress,.staff-plan-difference,.staff-ledger-explanation,.staff-ledger > p) { display: none; }
.tool-personal .staffing-overview.is-collapsed .staff-ledger { border: 0; padding: 0; }
.tool-personal .staffing-overview.is-collapsed .staff-ledger-values { display: grid; }
.tool-personal .staffing-overview.is-collapsed .staff-ledger-values > div:not(:last-child) { display: none; }
.tool-personal .staffing-row .staff-hours-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.tool-personal .staffing-overview.is-collapsed .staffing-row .staff-hours-metrics { display: none; }
.tool-personal .staff-hours-progress > p { margin: 0; }

/* Compact planner rail: numeric overview first, account explanation on demand. */
.tool-personal .staffing-overview .staffing-row { padding: var(--zg-space-2) var(--zg-space-3); }
.tool-personal .staffing-row .staff-hours-metrics { margin-block: var(--zg-space-1); }
.tool-personal .staffing-row .staff-hours-progress { gap: var(--zg-space-1); margin-block: var(--zg-space-1); }
.tool-personal .staff-hours-chart p { display: none; }
.tool-personal .staff-hours-chart svg { block-size: var(--zg-space-1); }
.tool-personal .staffing-row .staff-plan-difference { margin-block: var(--zg-space-1); }
.tool-personal .staff-hours-details { font-size: var(--zg-font-caption); }
.tool-personal .staff-hours-details > summary { cursor: pointer; }
.tool-personal .staff-ledger > p { margin-block: var(--zg-space-1); }
.tool-personal .staffing-overview.is-collapsed .staff-hours-details > summary { display: none; }

/* Keep the personnel shortcut beside the name within the compact hours rail. */
.tool-personal .staff-hours-person { display:flex; align-items:center; gap:var(--zg-space-1); }
.tool-personal .staff-hours-person > strong { min-inline-size:0; overflow-wrap:anywhere; }
.tool-personal .staff-hours-person > button { flex:0 0 auto; }
