/* Keep centered content fixed when a long duty adds a vertical scrollbar. */
html {
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

.fetch-status {
  font-size: 11px;
}

.fetch-status-time {
  text-decoration: none;
  font-weight: 700;
}

/* A free day is already clear in the selected date and heading. */
.app .sheet-heading .status-tag.free { display: none !important; }

/* The employee name is sufficient in the compact sidebar identity block. */
.app .workspace-name small { display: none !important; }

.fetch-status-mobile {
  display: none;
}

.login-box .cache-notice {
  margin-top: 14px;
}

.welcome-intro h1 {
  font-weight: 700;
}

.logout-dialog [data-slot="alert-dialog-footer"] {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 10px;
}

.logout-dialog [data-slot="alert-dialog-footer"] > button {
  width: 100%;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 16px !important;
  box-sizing: border-box;
}

.app .sheet .empty.free-day {
  min-height: 280px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.app .sheet .empty.free-day > svg {
  flex: 0 0 auto;
}

.app .sheet .empty.free-day > * {
  transform: none;
}

.app .sheet .empty.free-day > p:last-child {
  margin-bottom: 0;
}

.app .managed-context .section-title h3,
.app .team-card h3 {
  font-size: 22px !important;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.5px;
}

.app.large-text .managed-context .section-title h3,
.app.large-text .team-card h3 {
  font-size: 25px !important;
}

.app.large-text :is(.context-column, .context-card, .team-card, .section-title, .section-title h3) {
  min-width: 0;
  max-width: 100%;
}

.app.large-text :is(.context-card, .team-card) :is(h3, p, button) {
  overflow-wrap: anywhere;
  word-break: normal;
}

@media (min-width: 941px) {
  .app.large-text .work-grid {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 0.42fr);
  }
}

/* Keep the service summary compact so the timetable stays in view. */
@media (min-width: 701px) {
  .app .sheet-heading {
    padding: 17px 26px 11px;
  }

  .app .sheet-heading .eyebrow {
    margin-bottom: 7px;
  }

  .app .sheet-heading h2 {
    margin-bottom: 0;
  }

  .app .metrics {
    padding: 11px 0 13px;
  }

  .app .metrics span {
    margin-bottom: 5px;
  }
}

@media (max-width: 700px) {
  .app:not(.large-text) .sheet-heading {
    padding: 10px 15px 8px;
  }

  .app:not(.large-text) .sheet-heading .eyebrow {
    margin-bottom: 5px;
  }

  .app:not(.large-text) .sheet-heading h2 {
    margin-bottom: 0;
  }

  .app:not(.large-text) .metrics {
    margin: 0 15px;
    padding: 9px 0 10px;
  }

  .app:not(.large-text) .metrics span {
    margin-bottom: 4px;
  }

  .app .sheet .empty.free-day {
    min-height: 250px;
  }

  .fetch-status {
    font-size: 10px;
    white-space: nowrap;
  }
  .fetch-status-desktop {
    display: none;
  }
  .fetch-status-mobile {
    display: inline;
  }
}

/* Keep the login disclaimer visually centered as one icon-and-text group. */
.welcome .security {
  align-items: center;
  justify-content: center;
  text-align: center;
}
