.calendar-toolbar,
.calendar-filter-bar,
.calendar-view-switcher {
  display: flex;
  align-items: center;
  gap: var(--space-2, .5rem);
  flex-wrap: wrap;
}

.calendar-toolbar {
  justify-content: space-between;
  margin-bottom: var(--space-4, 1rem);
}

.calendar-view-switcher .action-button[aria-pressed="true"] {
  border-color: var(--gc-brand-strong);
  background: var(--gc-brand-soft);
}

.calendar-filter-bar {
  padding: var(--space-3, .75rem);
  margin-bottom: var(--space-4, 1rem);
}

.calendar-filter-bar label,
.calendar-form-grid label {
  display: grid;
  gap: .25rem;
  min-width: 12rem;
  font-size: .8rem;
  color: var(--gc-muted);
}

.calendar-filter-bar select,
.calendar-form-grid input,
.calendar-form-grid select,
.calendar-form-grid textarea {
  min-height: 2.5rem;
  border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius-sm);
  background: var(--gc-surface);
  color: var(--gc-text);
  padding: .45rem .65rem;
  font: inherit;
}

.calendar-form-grid textarea {
  resize: vertical;
}

.calendar-booking { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--gc-border); min-width: 0; }
.calendar-booking > label { display: grid; gap: .25rem; }
.calendar-booking input[type="search"] { width: 100%; box-sizing: border-box; min-height: 44px; padding: .5rem; border: 1px solid var(--gc-muted); border-radius: var(--gc-radius-sm); background: var(--gc-surface); color: var(--gc-text); font:inherit; }
.calendar-booking input[type="search"]:focus-visible { outline:3px solid var(--gc-brand-strong); outline-offset:3px; }
.calendar-participant-results { max-height: 12rem; overflow: auto; display: grid; gap: .35rem; margin: .5rem 0; }
.calendar-participant-results label { display: flex; gap: .5rem; align-items: center; padding: .35rem; overflow-wrap: anywhere; }
.calendar-participant-results input { width: 1.1rem; height: 1.1rem; flex-shrink: 0; }
.calendar-selected-people { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .5rem; }
.calendar-availability-list { list-style: none; padding: 0; display: grid; gap: .6rem; }
.calendar-availability-list li { display: flex; gap: .4rem .8rem; flex-wrap: wrap; padding: .65rem; border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); overflow-wrap: anywhere; }
.calendar-availability-list small { flex-basis: 100%; color: var(--gc-muted); }

.calendar-month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px;
  background: var(--gc-border);
  border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius-md);
  overflow: hidden;
}

.calendar-weekday,
.calendar-day {
  background: var(--gc-surface);
}

.calendar-weekday {
  padding: .6rem;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--gc-muted);
}

.calendar-day {
  min-height: 7.5rem;
  padding: .55rem;
}

.calendar-day.is-outside {
  background: var(--gc-surface-subtle);
  color: var(--gc-text);
}

.calendar-day-number {
  display: inline-flex;
  min-width: 1.75rem;
  min-height: 1.75rem;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  margin-bottom: .35rem;
}

.calendar-event-stack {
  display: grid;
  gap: .3rem;
}

.calendar-event {
  display: block;
  width: 100%;
  border: 1px solid var(--gc-border);
  border-radius: .4rem;
  background: var(--gc-surface);
  color: inherit;
  text-align: left;
  padding: .38rem .45rem;
  font: inherit;
  cursor: pointer;
}

.calendar-event:hover,
.calendar-event:focus-visible,
.calendar-agenda-item:hover,
.calendar-agenda-item:focus-visible {
  border-color: var(--gc-brand-strong);
}

.calendar-event.has-conflict,
.calendar-agenda-item.has-conflict {
  border-color: var(--gc-warning);
}

.calendar-event small {
  display: block;
  color: var(--gc-muted);
  margin-top: .15rem;
}

.calendar-week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: var(--space-2, .5rem);
}

.calendar-week-column {
  min-width: 0;
  padding: var(--space-3, .75rem);
}

.calendar-week-column h3 {
  margin: 0 0 .65rem;
  font-size: .9rem;
}

.calendar-agenda-list {
  display: grid;
  gap: var(--space-3, .75rem);
}

.calendar-agenda-item {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(9rem, .3fr) minmax(0, 1fr) auto;
  gap: var(--space-3, .75rem);
  align-items: center;
  padding: var(--space-3, .75rem);
  color: inherit;
  text-align: left;
  font: inherit;
  cursor: pointer;
}

.calendar-event-type {
  font-size: .75rem;
  color: var(--gc-muted);
  text-transform: capitalize;
}

.calendar-conflict-badge {
  display: inline-block;
  margin-left: .5rem;
  font-size: .7rem;
  font-weight: 700;
  color: var(--gc-text);
}

.calendar-notice,
.calendar-dialog-error,
.calendar-conflict-list {
  border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius-sm);
  padding: .7rem .8rem;
  margin-bottom: var(--space-3, .75rem);
}

.calendar-notice {
  background: var(--gc-brand-soft);
}

.calendar-dialog-error,
.calendar-conflict-list {
  background: var(--gc-surface-subtle);
}

.calendar-dialog {
  width: min(46rem, calc(100vw - 2rem));
  max-height: calc(100vh - 2rem);
  overflow: auto;
  border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius-md);
  background: var(--gc-surface);
  color: var(--gc-text);
  padding: var(--space-5, 1.25rem);
  box-shadow: 0 1.4rem 3.5rem rgba(16, 38, 42, .22);
}

.calendar-dialog::backdrop {
  background: rgba(16, 38, 42, .45);
}

.calendar-dialog-head,
.calendar-dialog-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3, .75rem);
}

.calendar-dialog-actions .action-button {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.calendar-dialog :is(p, h3, .calendar-availability-list li) {
  overflow-wrap: anywhere;
}

.calendar-dialog-head {
  margin-bottom: var(--space-3, .75rem);
}
.calendar-dialog-head>div { min-width:0; flex:1; }
.calendar-dialog-head>button { flex-shrink:0; }
.calendar-dialog :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--gc-brand-strong); outline-offset:3px; }

.calendar-dialog-head h2 {
  margin: .15rem 0 0;
  overflow-wrap:anywhere;
}

.calendar-dialog-head small,
.calendar-dialog-copy {
  color: var(--gc-muted);
}

.calendar-dialog-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: var(--space-4, 1rem);
}

.calendar-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3, .75rem);
}

.calendar-field-wide {
  grid-column: 1 / -1;
}

.calendar-event-detail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3, .75rem);
  margin: var(--space-4, 1rem) 0;
}

.calendar-event-detail div {
  min-width: 0;
  overflow-wrap: anywhere;
  padding: .65rem;
  border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius-sm);
}

.calendar-event-detail dt {
  font-size: .75rem;
  color: var(--gc-muted);
}

.calendar-event-detail dd {
  margin: .2rem 0 0;
  font-weight: 600;
}

.calendar-conflict-list ul {
  margin: .5rem 0 0;
  padding-left: 1.25rem;
}

@media (max-width: 900px) {
  .calendar-month-grid {
    grid-template-columns: 1fr;
    background: transparent;
    border: 0;
    gap: var(--space-2, .5rem);
  }

  .calendar-weekday {
    display: none;
  }

  .calendar-day {
    min-height: auto;
    border: 1px solid var(--gc-border);
    border-radius: var(--gc-radius-sm);
  }

  .calendar-day.is-outside {
    display: none;
  }

  .calendar-week-grid,
  .calendar-form-grid,
  .calendar-event-detail {
    grid-template-columns: 1fr;
  }

  .calendar-field-wide {
    grid-column: auto;
  }

  .calendar-agenda-item {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .calendar-toolbar,
  .calendar-view-switcher,
  .calendar-dialog-actions {
    align-items: stretch;
  }

  .calendar-view-switcher .action-button,
  .calendar-dialog-actions .action-button {
    flex: 1 1 auto;
  }

  .calendar-dialog {
    width: calc(100vw - 1rem);
    max-height: calc(100vh - 1rem);
    padding: var(--space-3, .75rem);
  }
}

.calendar-booking > .calendar-teams-choice { display: flex; align-items: center; gap: 0.5rem; min-height: 44px; cursor: pointer; }
.calendar-teams-choice input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; }

/* Team is a read projection inside the existing Calendar surface. */
.calendar-team { display:grid; gap:var(--space-4,1rem); min-width:0; }
.team-summary { display:flex; gap:.6rem 1rem; flex-wrap:wrap; align-items:center; }
.team-summary small { color:var(--gc-muted); margin-left:auto; }
.team-filter-bar input,.team-filter-bar select { min-height:44px; max-width:100%; }
.team-timezone { color:var(--gc-muted); font-size:.8125rem; margin-left:auto; }
.team-person { display:grid; grid-template-columns:12rem minmax(0,1fr); gap:.4rem 1rem; padding:.75rem 1rem; min-width:0; }
.team-person-heading { display:flex; flex-direction:column; align-items:flex-start; gap:.35rem; grid-column:1; grid-row:1 / 3; min-width:0; }
.team-person-day { grid-column:2; min-width:0; }
.team-person-heading h3 { font-size:1rem; margin:0; }
.team-person-heading p { margin:.2rem 0; font-size:.8125rem; }
.team-person-heading small,.team-more,.team-work-empty { color:var(--gc-muted); }
.team-status { display:inline-flex; align-items:center; gap:.4rem; flex-shrink:0; }
.team-now-next { display:flex; flex-wrap:wrap; gap:.4rem 1rem; margin:.15rem 0 .4rem; font-size:.8125rem; }
.team-planner-scroll { min-width:0; overflow-x:auto; padding:.25rem .5rem .4rem; }
.team-planner-scroll:focus-visible { outline:2px solid var(--gc-brand-strong); outline-offset:2px; }
.team-timeline { margin:0; min-width:40rem; }
.team-time-ruler { position:relative; height:1.5rem; font-size:.75rem; color:var(--gc-muted); margin:0; }
.team-time-ruler>span { position:absolute; transform:translateX(-50%); white-space:nowrap; }
.team-time-canvas { position:relative; padding:.3rem 0; background:repeating-linear-gradient(to right,transparent 0,transparent calc(10% - 1px),var(--gc-border) calc(10% - 1px),var(--gc-border) 10%); border:1px solid var(--gc-border); border-radius:4px; }
.team-timeline-track { min-height:2.75rem; position:relative; margin:.15rem 0; }
.team-working-hours-band { position:absolute; top:0; bottom:0; background:var(--gc-surface-subtle); border-inline:1px dashed var(--gc-muted); opacity:.45; pointer-events:none; }
.team-working-hours { font-size:.75rem; color:var(--gc-muted); }
.team-working-hours h4 { font-size:.75rem; font-weight:500; margin:.3rem 0; }
.team-working-hours ul { list-style:none; padding:0; margin:0; display:grid; gap:.2rem; }
.team-working-hours li { display:flex; flex-wrap:wrap; gap:.5rem; }
.team-day-heading h2 { font-size:1rem; margin:0; }
.team-day-heading p { font-size:.8125rem; color:var(--gc-muted); margin:.3rem 0; }
.team-timeline-block { position:absolute; height:100%; display:flex; align-items:center; gap:.35rem; padding:0 .4rem; box-sizing:border-box; border:1px solid var(--gc-border); background:var(--gc-info-soft); color:var(--gc-text); overflow:hidden; font-size:.8125rem; }
.team-timeline-block>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team-timeline-block svg { flex-shrink:0; }
.team-state-working,.team-state-available { background:var(--gc-success-soft); }
.team-state-away,.team-state-annual_leave,.team-state-unknown,.team-state-tentative { background:var(--gc-warning-soft); }
.team-timeline-block.team-state-teams_meeting { border-left:4px solid var(--gc-info); font-weight:700; }
.team-person-context { display:grid; gap:.25rem; min-width:0; }
.team-person-context>.team-today { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.team-person-context h4 { margin:.5rem 0; font-size:.8125rem; }
.team-commitments,.team-work ul { list-style:none; padding:0; margin:0; display:grid; gap:.5rem; }
.team-commitments li { display:grid; grid-template-columns:6.5rem minmax(0,1fr); gap:.5rem; font-size:.8125rem; }
.team-block-time { font-variant-numeric:tabular-nums; color:var(--gc-muted); }
.team-block-kind { display:flex; align-items:center; gap:.35rem; text-transform:uppercase; font-size:.75rem; }
.team-central-title { display:block; margin-top:.15rem; overflow-wrap:anywhere; }
.team-commitments small { display:block; color:var(--gc-muted); }
.team-work li { display:flex; flex-wrap:wrap; gap:.3rem; justify-content:space-between; font-size:.8125rem; }
.team-work li strong { overflow-wrap:anywhere; }
.team-work li span,.team-work small { color:var(--gc-muted); }
.team-degraded { display:flex; align-items:center; gap:.4rem; font-size:.75rem; color:var(--gc-muted); margin:.3rem 0; }
.team-person-actions { grid-column:2; }
.team-person-actions,.team-pagination { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.calendar-team .action-button { min-height:44px; }
.calendar-team button:focus-visible,.calendar-team input:focus-visible,.calendar-team select:focus-visible { outline:2px solid var(--gc-brand-strong); outline-offset:3px; }
@media (max-width:1100px) {
  .team-person { grid-template-columns:10rem minmax(0,1fr); gap:.4rem .75rem; }
}
@media (max-width:600px) {
  .team-person { display:block; padding:1rem; }
  .team-planner-scroll { display:none; }
  .team-person-context>.team-today { position:static; width:auto; height:auto; margin:0; overflow:visible; clip-path:none; white-space:normal; }
  .team-person-day { margin:.5rem 0; }
  .team-person-heading { flex-direction:column; gap:.5rem; }
  .team-filter-bar label { width:100%; }
  .team-filter-bar input,.team-filter-bar select { width:100%; }
  .team-timezone,.team-summary small { margin-left:0; }
  .team-person-actions .action-button { flex:1; }
  .team-summary { gap:.5rem .75rem; }
}

.team-select-person { display:flex; align-items:center; gap:.5rem; min-height:44px; font-size:.8125rem; cursor:pointer; }
.team-select-person input { width:1.125rem; height:1.125rem; }
.team-source-links { display:flex; flex-wrap:wrap; gap:.5rem; }
.team-source-links h3 { flex-basis:100%; }
.team-person-detail .action-button { min-height:44px; }

@media (max-width:600px) {
  .team-person-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .team-person-actions .action-button { width:100%; }
}

.team-status .gc-status[data-state] { color:var(--gc-text); font-size:var(--gc-font-xs); }
.team-status .gc-status[data-state="progress"]::before { background:var(--gc-info); }
.team-status .gc-status[data-state="warning"]::before { background:var(--gc-warning); }


.calendar-team,.team-person-detail { color:var(--gc-text); }

.team-filter-bar label { min-width:0; color:var(--gc-muted); }
.team-filter-bar input,.team-filter-bar select { box-sizing:border-box; }
.team-person,.team-person-detail { overflow-wrap:anywhere; }

@media (min-width:601px) {
  .team-work ul { display:flex; flex-wrap:wrap; gap:.25rem .75rem; }
  .team-work li { flex:1 1 11rem; font-size:.75rem; gap:.15rem; }
  .team-work li strong { font-weight:500; }
  .team-work-empty { font-size:.75rem; margin:.3rem 0; }
  .team-person-actions .action-button { padding-inline:.65rem; font-size:.75rem; }
  .team-working-hours { display:flex; flex-wrap:wrap; align-items:baseline; gap:.25rem .5rem; }
  .team-working-hours h4 { margin:0; }
  .team-working-hours ul { display:flex; flex-wrap:wrap; gap:.25rem .75rem; }
}

.team-timeline-block strong,.team-timeline-block small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team-timeline-block strong { font-size:.6875rem; text-transform:uppercase; }
.team-timeline-block small { font-size:.75rem; }

.team-day-planner { min-width:0; border:1px solid var(--gc-border); border-radius:var(--gc-radius-md); background:var(--gc-surface); }
.team-day-planner>.team-person { border:0; border-bottom:1px solid var(--gc-border); border-radius:0; box-shadow:none; background:transparent; }
.team-day-planner>.team-person:last-child { border-bottom:0; }
@media (max-width:600px) {
  .team-day-planner { display:grid; gap:.75rem; border:0; background:none; }
  .team-day-planner>.team-person { border:1px solid var(--gc-border); border-radius:var(--gc-radius-md); background:var(--gc-surface); }
  .team-day-planner>.team-person:last-child { border-bottom:1px solid var(--gc-border); }
}

/* Shared planned activity form uses the existing Calendar dialog and semantic tokens. */
.work-block-dialog { box-sizing:border-box; color:var(--gc-text); background:var(--gc-surface); }
.work-block-dialog label { display:grid; gap:.4rem; min-width:0; color:var(--gc-text); }
.work-block-dialog input,.work-block-dialog select,.work-block-dialog textarea { box-sizing:border-box; width:100%; min-width:0; min-height:44px; border:1px solid var(--gc-border); border-radius:var(--gc-radius-sm); padding:.65rem; font:inherit; color:var(--gc-text); background:var(--gc-surface); }
.work-block-dialog .action-button { min-height:44px; min-width:44px; white-space:normal; }
.work-block-dialog .calendar-dialog-head { align-items:flex-start; }
.work-block-dialog .calendar-dialog-head h2 { overflow-wrap:anywhere; }
.work-block-field-error { color:var(--gc-text); font-weight:600; font-size:.85rem; }
.work-block-field-error:empty { display:none; }
.work-block-dialog [aria-invalid="true"] { border:2px solid var(--gc-danger); }
.work-block-chooser { display:flex; flex-wrap:wrap; gap:.5rem; align-items:end; }
.work-block-chooser label { flex:1 1 12rem; }
.work-block-chooser p { flex-basis:100%; }
.work-block-list { list-style:none; padding:0; display:grid; gap:.75rem; }
.work-block-list li { display:grid; gap:.25rem; }
.work-block-list button { text-align:left; }
.work-block-list span,.work-block-notes { overflow-wrap:anywhere; white-space:pre-wrap; }
@media(max-width:600px) {
  .work-block-dialog .calendar-form-grid { grid-template-columns:minmax(0,1fr); }
  .work-block-dialog .calendar-dialog-actions { display:grid; grid-template-columns:minmax(0,1fr); }
}

.team-timeline-block.team-state-planned_work { border-left:4px solid var(--gc-brand); background:var(--gc-brand-soft); }
.team-state-planned_work .gc-status { white-space:normal; overflow-wrap:anywhere; }
.team-planned-activities { margin-block:1rem; }
.team-source-links .action-button { min-height:44px; min-width:44px; white-space:normal; overflow-wrap:anywhere; }

.work-block-dialog .calendar-dialog-copy,.work-block-dialog .calendar-dialog-head small { color:var(--gc-muted); }
.work-block-dialog .calendar-dialog-error,.work-block-dialog .calendar-conflict-list { background:var(--gc-surface-subtle); border-color:var(--gc-border); }
.work-block-dialog input,.work-block-dialog select,.work-block-dialog textarea { border-color:var(--gc-muted); }
.work-block-dialog :is(button,input,select,textarea,[tabindex]):focus-visible { outline:3px solid var(--gc-brand-strong); outline-offset:3px; }

.calendar-filter-bar label { min-width:0; max-width:100%; flex:1 1 12rem; }
.calendar-filter-bar select { min-height:44px; min-width:0; max-width:100%; width:100%; }

.calendar-participant-results label { min-height:44px; }
.calendar-participant-results label span { min-width: 0; overflow-wrap: anywhere; }
.calendar-participant-results label small,.calendar-selected-people button small { display:block; color:var(--gc-muted); font-size:.75rem; }
.calendar-selected-people button { display:block; text-align:left; white-space:normal; }

#calendar-workspace [data-calendar-action="book-meeting"],
#calendar-workspace [data-calendar-action="schedule-work"] { min-height:44px; }

.calendar-dialog [data-calendar-microsoft-responses-retry] { min-height:44px; }

/* One shared booking composer: its actions remain visible at every viewport. */
.calendar-dialog:has([data-calendar-create-form]) { overflow:hidden; background:var(--gc-surface); color:var(--gc-text); }
[data-calendar-create-form] { display:flex; flex-direction:column; min-height:0; max-height:calc(100dvh - 5rem); }
.calendar-composer-body { overflow-y:auto; overscroll-behavior:contain; min-height:0; padding:.25rem; }
.calendar-composer-footer { display:grid; grid-template-columns:1fr auto auto; flex-shrink:0; border-top:1px solid var(--gc-border); padding-top:.75rem; background:var(--gc-surface); }
.calendar-composer-footer .action-button { min-height:44px; white-space:normal; }
.calendar-composer-body [data-calendar-capability-refresh] { min-height:44px; white-space:normal; }
.calendar-composer-body .calendar-dialog-copy,.calendar-dialog:has([data-calendar-create-form]) .calendar-dialog-head small { color:var(--gc-muted); }
.calendar-dialog [data-calendar-create-form] :is(button,input,select,textarea):focus-visible { outline:3px solid var(--gc-brand-strong); outline-offset:3px; }
.calendar-meeting-options { margin-block:.75rem; border-block:1px solid var(--gc-border); }
.calendar-meeting-options>summary { cursor:pointer; min-height:44px; padding-block:.5rem; box-sizing:border-box; font-weight:600; }
.calendar-meeting-options>summary small { display:block; margin-top:.25rem; color:var(--gc-muted); font-weight:400; overflow-wrap:anywhere; }
.calendar-meeting-options[open]>.calendar-form-grid { padding-top:.5rem; }
.calendar-meeting-options>summary:focus-visible,.calendar-availability-summary summary:focus-visible { outline:3px solid var(--gc-brand-strong); outline-offset:3px; }
.calendar-availability-summary { display:flex; gap:.5rem; align-items:flex-start; flex-wrap:wrap; margin-top:.75rem; }
.calendar-availability-summary details { flex:1 1 15rem; min-width:0; }
.calendar-availability-summary summary { min-height:44px; box-sizing:border-box; padding:.5rem 0; cursor:pointer; }
.calendar-availability-summary summary small { margin-left:.5rem; color:var(--gc-muted); }
.calendar-delivery-summary { grid-column:1/-1; min-width:0; }
.calendar-delivery-summary p { margin:0; font-size:.8125rem; overflow-wrap:anywhere; }
.calendar-delivery-summary [data-guest-delivery] { display:block; margin-top:.25rem; }
.calendar-delivery-summary [data-guest-delivery][hidden] { display:none; }
.calendar-delivery-summary .action-button { margin-top:.5rem; }
.calendar-composer-footer>[data-calendar-dialog-close] { grid-column:2; }
.calendar-composer-footer>.action-button { margin:0; }
.calendar-composer-body .calendar-form-grid .calendar-teams-choice { display:flex; align-items:center; min-height:44px; gap:.5rem; color:var(--gc-text); }
.calendar-composer-body .calendar-form-grid .calendar-teams-choice input { width:20px; min-height:20px; }
.calendar-meeting-delivery-options>.calendar-teams-choice { display:flex; align-items:center; gap:.5rem; min-height:44px; cursor:pointer; }
.calendar-discard-confirm { grid-column:1/-1; padding:.75rem; border:1px solid var(--gc-border); border-radius:var(--gc-radius-sm); background:var(--gc-surface-subtle); }
.calendar-discard-confirm[hidden] { display:none; }
.calendar-discard-confirm p { margin:.25rem 0; }
.calendar-discard-confirm .calendar-dialog-actions { margin-top:.5rem; }
.calendar-notice { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.calendar-notice .action-button { min-height:44px; }
.calendar-composer-footer>.action-button[hidden] { display:none; }
@media(max-width:600px) {
  [data-calendar-create-form] { max-height:calc(100dvh - 2.75rem); }
  .calendar-composer-footer { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .calendar-composer-footer .action-button { min-width:0; }
  .calendar-composer-footer>[data-calendar-dialog-close] { grid-column:1; }
}

.calendar-composer-body .calendar-form-grid label { color:var(--gc-muted); min-width:0; }
.calendar-composer-body .calendar-form-grid :is(input,select,textarea) { background:var(--gc-surface); color:var(--gc-text); border-color:var(--gc-muted); min-height:44px; box-sizing:border-box; width:100%; min-width:0; }
.calendar-composer-body .calendar-dialog-error { background:var(--gc-surface-subtle); color:var(--gc-text); border-color:var(--gc-border); }

.calendar-composer-body :is([data-calendar-teams-choice],[data-calendar-recurrence-fields])[hidden] { display:none; }

/* Calendar-owned timezone controls use the existing web form and semantic tokens. */
.calendar-timezone-field { min-width:0; }
.calendar-timezone-field [hidden] { display:none; }
.calendar-timezone-field p { margin:.35rem 0; overflow-wrap:anywhere; }
.calendar-timezone-field small { display:block; overflow-wrap:anywhere; }
.calendar-timezone-preview { border-left:2px solid var(--gc-border); padding-left:.75rem; margin-top:.65rem; font-size:.875rem; }
.calendar-timezone-preview summary { min-height:44px; display:flex; align-items:center; cursor:pointer; color:var(--gc-text); }
.calendar-timezone-search { display:grid; gap:.5rem; margin-top:.5rem; }
@media (max-width:390px) {
  .calendar-dialog:has([data-calendar-create-form]) .calendar-dialog-head { flex-wrap:wrap; }
  .calendar-dialog:has([data-calendar-create-form]) .calendar-dialog-head>div { flex:1 1 16rem; min-width:0; }
  .calendar-dialog:has([data-calendar-create-form]) .calendar-dialog-head>button { margin-left:auto; }
  .calendar-dialog:has([data-calendar-create-form]) .calendar-dialog-head h2 { font-size:1.25rem; }
}

[data-calendar-create-form] button { min-height:44px; }


/* Keep canonical scheduling actions reachable by touch in every view. */
.calendar-dialog .action-button { min-height:44px; min-width:44px; }


/* Compact authorised people planner; actual source blocks retain their timing. */
.calendar-secondary-actions { display:flex; gap:.5rem; flex-wrap:wrap; margin-block:-.5rem .75rem; }
.calendar-secondary-actions .action-button { min-height:44px; font-size:.8125rem; color:var(--gc-muted); }
.team-person { grid-template-columns:15rem minmax(0,1fr); gap:.25rem 1rem; padding:.65rem .85rem; }
.team-person-heading { gap:.2rem; }
.team-identity { display:flex; align-items:flex-start; gap:.25rem; min-width:0; width:100%; }
.team-identity>div { min-width:0; }
.team-identity p { margin:.15rem 0; }
.team-select-person { min-width:44px; width:44px; height:44px; flex:0 0 44px; justify-content:center; margin:-.2rem 0 0 -.4rem; }
.team-select-person input { width:20px; height:20px; margin:0; }
.team-person-heading small { font-size:.75rem; }
.team-person .team-status { background:none; max-width:100%; }
.team-person .team-status .gc-status { white-space:normal; overflow-wrap:anywhere; }
.team-person .team-now-next { margin:0; gap:.25rem; color:var(--gc-muted); }
.team-person .team-timeline-track { min-height:2.2rem; }
.team-person .team-time-canvas { background:repeating-linear-gradient(to right,transparent 0,transparent calc(10% - 1px),var(--gc-border) calc(10% - 1px),var(--gc-border) 10%); border-color:var(--gc-border); }
.team-person .team-person-context { gap:.2rem; }
.team-person .team-work h4 { margin:.5rem 0; font-weight:600; font-size:.8125rem; }
.team-work h4 span { display:block; color:var(--gc-muted); font-size:.75rem; font-weight:400; margin-top:.2rem; }
.team-person .team-work ul { display:grid; gap:.15rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.team-person .team-work li { display:block; min-width:0; }
.team-person .team-work li strong { display:block; font-weight:500; }
.team-person .team-work li span { font-size:.75rem; }
.team-person .team-work small { display:block; }
.team-semantic-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.team-more-actions { position:relative; }
.team-more-actions>summary,.team-availability-help>summary { display:flex; align-items:center; gap:.25rem; min-height:44px; min-width:44px; padding:.4rem .65rem; box-sizing:border-box; cursor:pointer; font-size:.8125rem; list-style:none; border-radius:var(--gc-radius-sm); }
.team-more-actions>summary { border:1px solid var(--gc-border); }
.team-more-actions>summary::-webkit-details-marker,.team-availability-help>summary::-webkit-details-marker { display:none; }
.team-more-actions>summary:focus-visible,.team-availability-help>summary:focus-visible { outline:3px solid var(--gc-brand-strong); outline-offset:3px; }
.team-overflow-actions { position:absolute; right:0; top:100%; z-index:5; width:max-content; max-width:15rem; display:grid; gap:.25rem; padding:.5rem; border:1px solid var(--gc-border); border-radius:var(--gc-radius-sm); background:var(--gc-surface); box-shadow:var(--shadow-sm); }
.team-overflow-actions .action-button { text-align:left; white-space:normal; }
.team-availability-help { flex:0 1 auto; }
.team-availability-help>summary { width:max-content; color:var(--gc-muted); padding:.2rem 0; }
.team-availability-help p { margin:.25rem 0; font-size:.8125rem; max-width:65ch; color:var(--gc-muted); }
@media (min-width:601px) {
  .team-person-actions { grid-row:2; }
  .team-person .team-working-hours { gap:.15rem .5rem; }
}
@media (max-width:1100px) and (min-width:601px) {
  .team-person { grid-template-columns:12rem minmax(0,1fr); }
}
@media (max-width:600px) {
  .team-person { padding:.7rem; }
  .team-person-heading { gap:.2rem; }
  .team-person-day { margin:.35rem 0; }
  .team-person-actions { display:flex; gap:.4rem; }
  .team-person-actions>.action-button { flex:1 1 auto; width:auto; padding-inline:.5rem; font-size:.8125rem; white-space:normal; }
  .team-person-actions>.team-more-actions { flex:0 0 auto; }
  .team-person .team-today h4 { display:none; }
  .team-person .team-commitments { gap:.3rem; }
  .team-person .team-block-kind { text-transform:none; font-size:.8125rem; }
  .team-person .team-central-title { margin:0; }
  .team-person .team-working-hours { display:flex; flex-wrap:wrap; gap:.2rem .5rem; }
  .team-person .team-working-hours h4 { margin:0; }
  .team-person .team-work ul { grid-template-columns:minmax(0,1fr); }
  .team-person .team-work li { display:flex; justify-content:flex-start; }
  .team-summary { gap:.3rem .6rem; }
}


.calendar-team [data-team-book-selected]:disabled { background:var(--gc-surface-subtle); color:var(--gc-muted); border-style:dashed; cursor:not-allowed; font-weight:500; }

/* Weekly source projection: task obligations stay in the person column. */
.team-period-switcher { margin-block:.25rem .75rem; }
.team-period-switcher .action-button,.team-week-toolbar .action-button { min-width:44px; min-height:44px; }
.team-week-heading h2 { margin:0; font-size:1.125rem; }
.team-week-heading p { margin:.35rem 0; }
.team-week-scroll { min-width:0; max-width:100%; overflow-x:auto; border:1px solid var(--gc-border); border-radius:var(--gc-radius-md); background:var(--gc-surface); }
.team-week-scroll:focus-visible { outline:2px solid var(--gc-brand-strong); outline-offset:3px; }
.team-week-table { width:100%; min-width:80em; table-layout:fixed; border-collapse:collapse; font-size:.8125rem; }
.team-week-table th,.team-week-table td { vertical-align:top; padding:.6rem; border-bottom:1px solid var(--gc-border); border-right:1px solid var(--gc-border); overflow-wrap:anywhere; }
.team-week-table th { text-align:left; font-weight:500; }
.team-week-table thead th { background:var(--gc-surface-subtle); padding:.75rem .6rem; }
.team-week-table th:first-child { width:16.154em; }
.team-week-table th[scope="row"],.team-week-table thead th:first-child { position:sticky; left:0; z-index:1; background:var(--gc-surface); }
.team-week-table [data-team-central] { scroll-margin-inline-start:calc(16.154em + 1.2rem); }
.team-week-table tr:last-child :is(th,td) { border-bottom:0; }
.team-week-table tr :is(th,td):last-child { border-right:0; }
.team-week-person-heading { display:grid; gap:.5rem; font-weight:400; }
.team-week-person-name { font-size:.875rem; display:flex; flex-direction:column; align-items:flex-start; text-align:left; padding:.4rem; font-weight:600; }
.team-week-person-name span { color:var(--gc-muted); font-size:.75rem; font-weight:400; }
.team-week-person-heading>small { color:var(--gc-muted); }
.team-week-tasks h4 { margin:.2rem 0 .5rem; font-size:.8125rem; }
.team-week-task-counts { display:flex; flex-wrap:wrap; gap:.25rem .65rem; margin-top:.5rem; }
.team-week-task-count { display:inline-block; font-size:.75rem; }
.team-week-task-preview { margin-top:.5rem; }
.team-week-person-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
.team-week .team-select-person { width:100%; height:auto; min-height:44px; margin:0; justify-content:flex-start; }
.team-week .team-select-person input { flex:0 0 20px; }
.team-week .team-select-person span { min-width:0; }
.team-week-person-actions .action-button { width:100%; font-size:.8125rem; }
.team-week-block,.team-week-task { width:100%; min-width:44px; min-height:44px; box-sizing:border-box; display:flex; flex-direction:column; align-items:flex-start; gap:.25rem; padding:.5rem; margin-bottom:.5rem; border:1px solid var(--gc-border); border-radius:var(--gc-radius-sm); background:var(--gc-info-soft); color:var(--gc-text); text-align:left; font:inherit; overflow-wrap:anywhere; }
button.team-week-block,button.team-week-task { cursor:pointer; }
button.team-week-block:hover,button.team-week-task:hover { border-color:var(--gc-brand-strong); }
button.team-week-block:active,button.team-week-task:active { background:var(--gc-surface-subtle); }
.team-week-block small,.team-week-task small,.team-week-tasks>small { color:var(--gc-muted); font-size:.75rem; font-weight:400; }
.team-week-block small { color:var(--gc-text); }
.team-week-readonly { background:var(--gc-surface-subtle); }
.team-week-task { background:var(--gc-surface); }
.team-week-empty { color:var(--gc-muted); font-size:.8125rem; font-weight:400; margin:.25rem 0 .5rem; }
.team-week-hours { margin-top:.75rem; font-size:.75rem; font-weight:400; color:var(--gc-muted); }
.team-week-hours summary { min-height:44px; box-sizing:border-box; padding-block:.5rem; cursor:pointer; }
.team-week-hours ul { padding-left:1rem; }
.team-week-mobile-day { display:none; }
.team-week-more { width:100%; font-size:.75rem; }
.calendar-guest-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; align-items:end; }
.calendar-guest-fields label { display:grid; gap:.4rem; min-width:0; color:var(--gc-text); }
.calendar-guest-fields input { box-sizing:border-box; width:100%; min-height:44px; padding:.65rem; border:1px solid var(--gc-muted); border-radius:var(--gc-radius-sm); background:var(--gc-surface); color:var(--gc-text); font:inherit; }
[data-guest-confirm-label][hidden] { display:none; }
.calendar-guest-list { padding:0; margin:.75rem 0; list-style:none; display:grid; gap:.5rem; }
.calendar-guest-list li { display:flex; align-items:center; justify-content:space-between; gap:.5rem; min-width:0; padding:.5rem; border:1px solid var(--gc-border); border-radius:var(--gc-radius-sm); }
.calendar-guest-list li div { min-width:0; overflow-wrap:anywhere; }
.calendar-guest-list span { display:block; }
.calendar-guest-list .action-button { flex-shrink:0; min-height:44px; min-width:44px; }
@media (max-width:767px) { .calendar-guest-fields { grid-template-columns:minmax(0,1fr); } }
.team-week-detail-days { display:grid; gap:.75rem; }
.team-week-detail-days>section { border-bottom:1px solid var(--gc-border); padding-bottom:.5rem; }
.team-week-task-category { margin-block:.75rem; }
.team-week-detail button:focus-visible,.team-week-hours summary:focus-visible { outline:2px solid var(--gc-brand-strong); outline-offset:3px; }
@media (max-width:767px) {
  .team-week-scroll { overflow:visible; border:0; background:transparent; }
  .team-week-table,.team-week-table tbody { display:block; width:100%; min-width:0; }
  .team-week-table thead { display:none; }
  .team-week-table tr { display:block; margin-bottom:1rem; border:1px solid var(--gc-border); border-radius:var(--gc-radius-md); background:var(--gc-surface); }
  .team-week-table th,.team-week-table td,.team-week-table th:first-child { display:block; box-sizing:border-box; width:100%; border:0; padding:.75rem; }
  .team-week-table th[scope="row"] { position:static; }
  .team-week-table td { border-top:1px solid var(--gc-border); }
  .team-week-mobile-day { display:block; margin:0 0 .5rem; font-size:.875rem; }
  .team-week-person-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .team-week-person-actions .action-button { min-width:0; }
}

/* Distinct Calendar/Team views and period groups use the existing shell. */
.calendar-navigation { margin-block:1rem; }
.calendar-surface-switcher { margin-bottom:.75rem; }
.calendar-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; }
#calendar-workspace .action-button { min-height:44px; min-width:44px; }
.calendar-period-title { margin:0; font-size:1.125rem; overflow-wrap:anywhere; }
.calendar-refresh { justify-self:end; }
.team-overlap-indicator { display:block; margin-top:.25rem; color:var(--gc-text); overflow-wrap:anywhere; }
.team-overlap-evidence { margin-block:.5rem; color:var(--gc-text); overflow-wrap:anywhere; }
.team-overlap-evidence>summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:600; }
.team-overlap-evidence p { margin-block:.5rem; }
.team-day-overlap-context { margin-top:.5rem; }
@media(max-width:600px) { .team-day-overlap-context>.team-overlap-indicator { display:none; } }
.team-central-open { background:transparent; border:1px solid var(--gc-border); border-radius:var(--gc-radius-sm); color:var(--gc-text); font:inherit; text-align:left; padding:.5rem; min-height:44px; cursor:pointer; }
.calendar-secondary-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-bottom:1rem; }
.calendar-secondary-actions>span { color:var(--gc-muted); font-size:.8125rem; }
#calendar-workspace .gc-page-description,
.calendar-secondary-actions>span,
.calendar-team>header .team-degraded,
.team-day-heading p,
.team-summary small,
.team-availability-help>summary,
.team-availability-help p { color:var(--gc-text); }
.calendar-navigation .action-button[aria-pressed="true"] { background:var(--gc-brand-soft); border-color:var(--gc-brand-strong); }
#calendar-workspace :is(button,input,select,summary):focus-visible { outline:3px solid var(--gc-brand-strong); outline-offset:3px; }
@media(max-width:600px) {
  .calendar-toolbar { grid-template-columns:minmax(0,1fr); }
  .calendar-refresh { justify-self:start; }
  .calendar-period-controls { grid-row:3; }
  .calendar-secondary-actions>span { flex-basis:100%; }
}
.calendar-conflict-review { border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); padding: 1rem; margin: 1rem 0; background: var(--gc-surface); overflow-wrap: anywhere; }
.calendar-conflict-review h3 { margin: 0 0 .5rem; }
.calendar-conflict-review .calendar-dialog-actions { flex-wrap: wrap; }
.calendar-conflict-review .action-button { min-height: 44px; }
.calendar-organiser-readiness { border-top: 1px solid var(--gc-border); padding-top: 1rem; overflow-wrap: anywhere; }
.calendar-organiser-readiness h3 { font-size: 1rem; margin: 0 0 .5rem; }
.calendar-organiser-readiness dl { display: grid; gap: .5rem; margin: 0; }
.calendar-organiser-readiness dl>div { display: flex; flex-wrap: wrap; gap: .25rem 1rem; justify-content: space-between; }
.calendar-organiser-readiness dt { font-weight: 600; }
.calendar-organiser-readiness dd { margin: 0; color: var(--gc-text); }
.shared-schedules { padding: var(--space-4, 1rem); }
.shared-schedules h2, .shared-schedules h3, .shared-schedules h4 { margin: 0 0 .5rem; overflow-wrap: anywhere; }
.shared-schedules p { margin: .5rem 0 1rem; }
.shared-privacy, .shared-coverage { color: var(--gc-muted); }
.shared-search, .shared-controls, .shared-results, .shared-selected, .shared-pagination { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; margin-bottom: 1rem; }
.shared-search label { flex: 1; min-width: min(100%, 12rem); }
.shared-schedules label { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.shared-schedules input, .shared-schedules select { min-height: 44px; min-width: 44px; max-width: 100%; width: 100%; padding: .65rem; border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); background: var(--gc-surface); color: var(--gc-text); font: inherit; }
.shared-schedules .action-button { min-height: 44px; min-width: 44px; white-space: normal; overflow-wrap: anywhere; }
.shared-person-choice[aria-pressed="true"] { border-color: var(--gc-brand); font-weight: 700; }
.shared-agenda { border-top: 1px solid var(--gc-border); padding-top: 1rem; margin-top: 1rem; }
.shared-days { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10em), 1fr)); gap: .5rem; }
.shared-day { min-width: 0; border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); padding: .65rem; }
.shared-day ul { list-style: none; margin: 0 0 .75rem; padding: 0; }
.shared-block { border-left: 3px solid var(--gc-brand); padding: .5rem; background: var(--gc-surface); margin-bottom: .5rem; overflow-wrap: anywhere; }
.shared-block span, .shared-block small { display: block; }
.shared-block-working { border-left-style: dashed; }
.shared-block-away, .shared-block-unknown { border-left-color: var(--gc-muted); }
.shared-mobile-person { display: none !important; }
.calendar-toolbar[hidden] { display: none; }
@media (max-width: 1199px) { .shared-days { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 699px) {
  .shared-days { grid-template-columns: minmax(0, 1fr); }
  .shared-controls > *, .shared-search > *, .shared-pagination > * { flex: 1 1 100%; }
  .shared-mobile-person { display: flex !important; }
  .shared-agenda:not(.shared-mobile-current) { display: none; }
}


