/* Dashboard readability layer v45.
   Loaded last on purpose: the legacy dashboard file contains several historical
   generations of pixel-sized overrides. This layer restores one coherent type scale. */
#page-platform-dashboard {
  --dashboard-text-xs: .75rem;    /* 12px metadata */
  --dashboard-text-sm: .8125rem;  /* 13px supporting text */
  --dashboard-text-md: .875rem;   /* 14px operational text */
  --dashboard-title: 1rem;        /* 16px section titles */
  font-size: var(--dashboard-text-md);
}

#page-platform-dashboard.is-active {
  height: auto !important;
  min-height: calc(100dvh - 40px);
  overflow: visible !important;
}

#appShell:has(#page-platform-dashboard.is-active) .main-stage {
  overflow-y: auto !important;
  overscroll-behavior-y: auto !important;
  touch-action: pan-y;
  scroll-behavior: smooth;
}

#page-platform-dashboard.is-active .platform-dashboard-shell {
  height: auto !important;
  min-height: 100%;
  grid-template-rows: 104px 132px minmax(620px, auto) !important;
  overflow: visible !important;
}

/* The readable dashboard grows with its content, so the agenda must not keep
   the fixed-height dashboard's nested scrollport. A single vertical scroll
   owner avoids wheel/trackpad input being trapped over the agenda column. */
#page-platform-dashboard.is-active .platform-day-scroll {
  overflow-y: visible !important;
  overscroll-behavior: auto !important;
  touch-action: pan-y;
  scroll-behavior: auto;
}

#page-platform-dashboard .platform-welcome h1 {
  font-size: 1.5rem !important;
}

#page-platform-dashboard .platform-welcome p {
  font-size: var(--dashboard-text-sm) !important;
  line-height: 1.45 !important;
}

#page-platform-dashboard :is(.platform-agenda-panel h2, .platform-service-panel h2, .platform-insight-card h2) {
  font-size: var(--dashboard-title) !important;
  line-height: 1.3 !important;
}

#page-platform-dashboard .platform-agenda-panel > header p {
  font-size: var(--dashboard-text-xs) !important;
  line-height: 1.45 !important;
}

#page-platform-dashboard :is(.platform-calendar-control button:first-child, .platform-calendar-next, .platform-agenda-view button) {
  width: 36px;
  height: 36px;
}

#page-platform-dashboard .platform-date-picker-wrap #platformTodayButton {
  min-width: 68px !important;
  height: 36px !important;
  font-size: var(--dashboard-text-xs) !important;
}

#page-platform-dashboard .platform-calendar-day > span,
#page-platform-dashboard .platform-calendar-day > small {
  font-size: .6875rem; /* 11px */
}

#page-platform-dashboard .platform-calendar-day > strong em,
#page-platform-dashboard .platform-calendar-day.is-selected > strong em {
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-calendar-day > div svg {
  width: 14px;
  height: 14px;
}

#page-platform-dashboard .platform-agenda-filters button {
  min-height: 36px;
  padding-inline: 15px;
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-agenda-filters button svg {
  width: 14px;
  height: 14px;
}

#page-platform-dashboard .platform-agenda-period > header {
  height: 34px;
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-agenda-row {
  min-height: 62px;
  grid-template-columns: 48px 12px minmax(0, 1fr);
}

#page-platform-dashboard .platform-agenda-row > time {
  padding-top: 17px;
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-agenda-row > button {
  min-height: 56px;
  grid-template-columns: 38px minmax(0, 1fr) auto 15px;
  gap: 11px;
  padding: 8px 11px;
}

#page-platform-dashboard .platform-agenda-icon {
  width: 36px;
  height: 36px;
}

#page-platform-dashboard .platform-agenda-copy b {
  font-size: var(--dashboard-text-md);
  line-height: 1.3;
}

#page-platform-dashboard .platform-agenda-copy small {
  font-size: var(--dashboard-text-xs);
  line-height: 1.35;
}

#page-platform-dashboard .platform-agenda-status {
  padding: 5px 8px;
  font-size: .6875rem;
}

#page-platform-dashboard :is(.platform-agenda-empty, .platform-agenda-panel > footer) {
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-agenda-panel > footer {
  min-height: 40px;
  height: auto;
}

#page-platform-dashboard .platform-service-panel > header span {
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-service-panel > div > article {
  min-height: 94px;
  grid-template-columns: 46px minmax(0, .8fr) minmax(112px, 1fr) 15px;
  gap: 12px;
  padding: 12px;
}

#page-platform-dashboard .platform-service-panel article > div small,
#page-platform-dashboard .platform-service-panel article > aside small,
#page-platform-dashboard .platform-service-panel article > div em,
#page-platform-dashboard .platform-service-panel article > aside em,
#page-platform-dashboard .platform-service-panel article > aside b {
  font-size: var(--dashboard-text-xs);
  line-height: 1.35;
}

#page-platform-dashboard .platform-service-panel > aside b {
  font-size: var(--dashboard-text-sm);
}

#page-platform-dashboard .platform-service-panel > aside small {
  font-size: var(--dashboard-text-xs);
  line-height: 1.4;
}

#page-platform-dashboard .platform-workload-ring small,
#page-platform-dashboard .platform-workload-legend span {
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-quick-access button {
  min-height: 38px;
  height: auto;
  padding: 7px 10px;
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-upcoming > header button {
  min-height: 24px;
  font-size: .6875rem;
}

#page-platform-dashboard .platform-upcoming > div button {
  min-height: 38px;
  height: auto;
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-upcoming > div button b,
#page-platform-dashboard .platform-attention > div button b,
#page-platform-dashboard .platform-attention > header b {
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-attention > div button {
  min-height: 40px;
}

#page-platform-dashboard .platform-calendar-popover > header strong,
#page-platform-dashboard .platform-calendar-grid button {
  font-size: var(--dashboard-text-xs);
}

#page-platform-dashboard .platform-calendar-weekdays span {
  font-size: .6875rem;
}

@media (max-width: 1180px) {
  #page-platform-dashboard.is-active .platform-dashboard-shell {
    grid-template-rows: 96px 122px auto !important;
  }
}

@media (max-width: 780px) {
  #page-platform-dashboard .platform-welcome h1 { font-size: 1.25rem !important; }
  #page-platform-dashboard .platform-welcome p { font-size: var(--dashboard-text-xs) !important; }
  #page-platform-dashboard .platform-agenda-copy small { white-space: normal; }
  #page-platform-dashboard .platform-service-panel { min-height: 520px; }
}

/* Desktop owns scrolling in .main-stage. The narrow layout uses document
   scrolling; clip the desktop root so its old narrow-layout offset cannot
   survive restoring the window and displace the workspace under the topbar.
   Unlike overflow:hidden, clip also prevents programmatic root scrolling. */
@media (min-width: 768px) {
  html:has(> body > #appShell.app-shell),
  body:has(> #appShell.app-shell) {
    overflow: clip;
    height: 100dvh;
  }
}

/* Compact date rail: one selection marker, no individual day cards. */
#page-platform-dashboard.is-active .platform-dashboard-shell {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: 104px 108px minmax(620px, auto) !important;
}
#page-platform-dashboard .platform-calendar-strip {
  align-items: center;
  padding: 8px 10px;
  border-radius: 16px;
  box-shadow: none !important;
}
#page-platform-dashboard .platform-calendar-control { padding: 0 12px 0 2px; gap: 8px; }
#page-platform-dashboard :is(#platformPreviousRange, #platformNextRange) {
  width: 34px; height: 34px; margin: 0; padding: 0;
  border-radius: 50%; border-color: #e5eceb !important;
  color: #627975; background: #fff !important;
}
#page-platform-dashboard :is(#platformPreviousRange, #platformNextRange):hover {
  color: #08786f; background: #f0f7f4 !important;
}
#page-platform-dashboard .platform-date-picker-wrap { width: 70px; min-width: 70px; }
#page-platform-dashboard .platform-date-picker-wrap #platformTodayButton {
  width: 70px !important; min-width: 70px !important; height: 32px !important;
  border-radius: 20px !important; background: #f4f8f6 !important;
  border-color: transparent !important; color: #3c645c !important;
  font-size: 11px !important; box-shadow: none !important;
}
#page-platform-dashboard .platform-date-picker-wrap #platformTodayButton.is-return-ready {
  background: #e8f5ef !important; color: #08786f !important;
}
#page-platform-dashboard #platformDateStrip {
  min-width: 0; max-width: 100%;
  grid-template-columns: repeat(9, minmax(52px, 1fr)) !important;
  gap: 4px !important; padding: 0 8px !important;
  background: transparent !important; border: 0 !important;
  overflow-x: auto !important; overflow-y: hidden !important;
  scrollbar-width: none; overscroll-behavior-x: contain;
  scroll-snap-type: x proximity; contain: layout;
}
#page-platform-dashboard #platformDateStrip::-webkit-scrollbar { display: none; }
#page-platform-dashboard .platform-calendar-day,
#page-platform-dashboard .platform-calendar-day.is-selected {
  min-height: 88px; min-width: 0; margin: 0; padding: 0;
  display: grid; grid-template-rows: 16px 44px 16px;
  align-content: center; justify-items: center; gap: 4px;
  border: 0 !important; border-radius: 12px;
  background: transparent !important; box-shadow: none !important;
  color: #506e67 !important; scroll-snap-align: center;
}
#page-platform-dashboard .platform-calendar-day > .platform-day-weekday {
  display: flex; align-items: center; gap: 4px;
  font-size: 11px; line-height: 16px; font-weight: 750; text-transform: uppercase;
}
#page-platform-dashboard .platform-day-weekday em {
  color: #7c928b; font-size: 10px; font-weight: 500;
  font-style: normal; text-transform: none;
}
#page-platform-dashboard .platform-calendar-day > strong,
#page-platform-dashboard .platform-calendar-day.is-selected > strong {
  display: grid; place-items: center; width: 44px; height: 44px;
  font-size: 25px; line-height: 1; font-weight: 750; letter-spacing: -.04em;
  color: #1a3936; font-variant-numeric: tabular-nums;
}
#page-platform-dashboard .platform-calendar-day > strong b {
  display: grid; place-items: center; width: 44px; height: 44px;
  border-radius: 50%; font: inherit; transition: background .15s, color .15s;
}
#page-platform-dashboard .platform-calendar-day:hover > strong b { background: #f0f6f3; }
#page-platform-dashboard .platform-calendar-day.is-selected > strong b {
  background: #08786f; color: #fff; box-shadow: 0 4px 10px #08786f20;
}
#page-platform-dashboard .platform-calendar-day.is-today > span { color: #08786f; }
#page-platform-dashboard .platform-calendar-day.is-today > span::after {
  content: ""; width: 4px; height: 4px; border-radius: 50%; background: #08786f;
}
#page-platform-dashboard .platform-calendar-day > .platform-day-activity {
  min-height: 16px; display: flex; align-items: center; justify-content: center; gap: 3px;
}
#page-platform-dashboard .platform-day-activity svg { width: 12px; height: 12px; }
#page-platform-dashboard .platform-day-activity small {
  margin-left: 2px; font-size: 10px; line-height: 14px; color: #627b74; font-weight: 650;
}
#page-platform-dashboard .platform-day-activity .platform-day-quiet {
  display: block; width: 3px; height: 3px; border-radius: 50%; background: #d1ddd7;
}
#page-platform-dashboard .platform-calendar-day:focus-visible {
  outline: 2px solid #38a99a; outline-offset: -2px;
}
@media (max-width: 1180px) {
  #page-platform-dashboard.is-active .platform-dashboard-shell { grid-template-rows: 96px 108px auto !important; }
}
@media (max-width: 780px) {
  #page-platform-dashboard.is-active .platform-dashboard-shell { grid-template-rows: 96px 142px auto !important; }
  #page-platform-dashboard .platform-calendar-strip {
    grid-template-columns: minmax(0, 1fr) 34px !important; grid-template-rows: 32px 88px;
    gap: 4px 0; padding: 8px; align-content: center;
  }
  #page-platform-dashboard .platform-calendar-control { grid-column: 1; grid-row: 1; padding-left: 4px; }
  #page-platform-dashboard #platformNextRange { grid-column: 2; grid-row: 1; }
  #page-platform-dashboard #platformDateStrip {
    grid-column: 1 / -1; grid-row: 2;
    grid-template-columns: repeat(9, 60px) !important; gap: 6px !important;
    padding: 0 4px !important;
  }
  #page-platform-dashboard .platform-operations-layout {
    grid-template-columns: minmax(0, 1fr) !important; min-width: 0;
  }
  #page-platform-dashboard .platform-insights-column {
    grid-template-columns: minmax(0, 1fr) !important; min-width: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  #page-platform-dashboard .platform-calendar-day > strong b { transition: none; }
}

/* Compact operations date rail: retain date selection and calendar behavior. */
#page-platform-dashboard.is-active .platform-dashboard-shell.platform-dashboard-shell {
  grid-template-rows: 133px 76px minmax(620px, auto) !important;
}
#page-platform-dashboard .platform-calendar-strip {
  padding: 6px 10px; border-radius: 12px;
  grid-template-columns: auto minmax(0, 1fr) 30px;
}
#page-platform-dashboard .platform-calendar-control { padding: 0 10px 0 0; gap: 6px; }
#page-platform-dashboard :is(#platformPreviousRange, #platformNextRange) {
  width: 30px; height: 30px; min-height: 30px; border-radius: 9px;
}
#page-platform-dashboard .platform-date-picker-wrap { width: 60px; min-width: 60px; }
#page-platform-dashboard .platform-date-picker-wrap #platformTodayButton {
  width: 60px !important; min-width: 60px !important; height: 30px !important;
  border-radius: 8px !important; font-size: 11px !important;
}
#page-platform-dashboard #platformDateStrip {
  grid-template-columns: repeat(9, minmax(46px, 1fr)) !important;
  gap: 4px !important; padding: 0 8px !important;
}
#page-platform-dashboard .platform-calendar-day,
#page-platform-dashboard .platform-calendar-day.is-selected {
  min-height: 62px; grid-template-rows: 12px 28px 12px;
  gap: 2px; padding: 3px 0; border-radius: 8px;
}
#page-platform-dashboard .platform-calendar-day > .platform-day-weekday {
  gap: 3px; font-size: 10px; line-height: 12px; letter-spacing: .015em;
}
#page-platform-dashboard .platform-day-weekday em { font-size: 10px; }
#page-platform-dashboard .platform-calendar-day > strong,
#page-platform-dashboard .platform-calendar-day.is-selected > strong {
  width: 30px; height: 28px; font-size: 18px; font-weight: 700; letter-spacing: -.025em;
}
#page-platform-dashboard .platform-calendar-day > strong b {
  width: 30px; height: 28px; border-radius: 8px;
}
#page-platform-dashboard .platform-calendar-day.is-selected > strong b {
  background: #08786f; box-shadow: 0 2px 5px #08786f18;
}
#page-platform-dashboard .platform-calendar-day > .platform-day-activity {
  height: 12px; min-height: 12px; gap: 2px;
}
#page-platform-dashboard .platform-day-activity svg { width: 10px; height: 10px; }
#page-platform-dashboard .platform-day-activity small { font-size: 10px; line-height: 12px; }
#page-platform-dashboard :is(#platformPreviousRange, #platformNextRange, #platformTodayButton):focus-visible {
  outline: 2px solid #08786f; outline-offset: 2px;
}
@media (max-width: 1180px) {
  #page-platform-dashboard.is-active .platform-dashboard-shell.platform-dashboard-shell { grid-template-rows: 126px 76px auto !important; }
}
@media (max-width: 780px) {
  #page-platform-dashboard.is-active .platform-dashboard-shell.platform-dashboard-shell { grid-template-rows: 126px 108px auto !important; }
  #page-platform-dashboard .platform-calendar-strip {
    grid-template-columns: minmax(0, 1fr) 30px !important;
    grid-template-rows: 30px 62px; gap: 2px 0; padding: 6px 8px;
  }
  #page-platform-dashboard #platformDateStrip {
    grid-template-columns: repeat(9, 48px) !important; gap: 4px !important;
    padding: 0 2px !important;
  }
}

/* Keep the agenda heading and its service filters in one compact row. */
#page-platform-dashboard .platform-agenda-panel {
  grid-template-rows: auto minmax(0, 1fr) auto;
}
#page-platform-dashboard .platform-agenda-panel > header {
  align-items: center; justify-content: flex-start; gap: 18px;
  padding: 14px 18px 12px; min-width: 0;
}
#page-platform-dashboard .platform-agenda-panel > header > div { flex: 0 0 auto; }
#page-platform-dashboard .platform-agenda-panel > header h2 { white-space: nowrap; }
#page-platform-dashboard .platform-agenda-panel > header > .platform-agenda-filters {
  flex: 1 1 auto; min-width: 0; display: flex; flex-wrap: nowrap;
  align-items: center; justify-content: flex-start;
  gap: 6px; padding: 2px; overflow-x: auto; scrollbar-width: thin;
  overscroll-behavior-x: contain;
}
#page-platform-dashboard .platform-agenda-panel > header .platform-agenda-filters button {
  flex: 0 0 auto; min-height: 32px; height: 32px;
  padding-inline: 11px; font-size: 12px; white-space: nowrap;
}
#page-platform-dashboard .platform-agenda-panel > header .platform-agenda-filters button:focus-visible {
  outline: 2px solid #08786f; outline-offset: -2px;
}
@media (max-width: 600px) {
  #page-platform-dashboard .platform-agenda-panel > header { gap: 10px; padding: 12px 10px 10px; }
  #page-platform-dashboard .platform-agenda-panel > header h2 { font-size: 14px !important; }
  #page-platform-dashboard .platform-agenda-panel > header .platform-agenda-filters button {
    padding-inline: 9px; font-size: 11px; gap: 4px;
  }
}
