/* Request index table — handoff P-requests-surface / request-index.html */

.body-dashboard-shell {
  --fg-3:             #6b7280;
  --fg-label:         #7b8494;
  --surface-tint:     #eef2f7;
  --danger:           #9c5a5a;
  --warning:          #8a6f38;
  --success:          #4e7763;
  --text-micro:       10px;
  --text-lg:          18px;
  --space-8:          8px;
  --space-9:          9px;
  --space-10:         10px;
  --space-11:         11px;
  --space-18:         18px;
  --space-24:         24px;
  --font-mono:        ui-monospace, 'SF Mono', Menlo, monospace;
}

.tasks-widget--requests-index .tasks-widget-tabs,
.tasks-widget--requests-index [data-tasks-view="columns"] {
  display: none !important;
}

.tasks-widget--requests-index .tasks-view-list {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.tasks-widget--requests-index .tasks-index-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 0;
  overscroll-behavior: contain;
}

.tasks-widget--requests-index .index__table {
  width: max-content;
  min-width: 100%;
}

.tasks-widget--requests-index .index__grid {
  display: grid;
  grid-template-columns: 280px 150px 160px 32px 88px 96px 72px 88px 60px 64px;
  align-items: center;
  column-gap: var(--space-11);
  width: max-content;
  box-sizing: border-box;
}

.tasks-widget--requests-index .index__head {
  padding: var(--space-9) 10px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--surface-0);
  position: sticky;
  top: 0;
  z-index: 1;
  box-sizing: border-box;
  width: max-content;
  min-width: 100%;
}

.tasks-widget--requests-index .index__headlbl {
  font-size: var(--text-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--fg-label);
}

.tasks-widget--requests-index .index__headlbl--right {
  text-align: center;
}

.tasks-widget--requests-index .index__head > :nth-child(n + 5),
.tasks-widget--requests-index .index__row > :nth-child(n + 5) {
  justify-self: center;
  text-align: center;
}

.tasks-widget--requests-index .index__row {
  width: max-content;
  min-width: 100%;
  text-align: left;
  border: none;
  background: none;
  padding: var(--space-8) 10px;
  border-bottom: 1px solid color-mix(in srgb, var(--border-faint) 45%, transparent);
  cursor: pointer;
  font: inherit;
  color: inherit;
  box-sizing: border-box;
}

.tasks-widget--requests-index .index__row:hover {
  background: var(--surface-tint);
}

.tasks-widget--requests-index .index__ident {
  min-width: 0;
  overflow: hidden;
}

.tasks-widget--requests-index .index__rtitle {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  color: var(--fg-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tasks-widget--requests-index .index__sub {
  display: block;
  font-size: var(--text-xs);
  color: var(--fg-3);
  margin-top: var(--space-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tasks-widget--requests-index .index__cell {
  font-size: var(--text-sm);
  color: var(--fg-2);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tasks-widget--requests-index .index__ident .index__cell {
  display: block;
}

.tasks-widget--requests-index .index__time {
  display: block;
  font-size: var(--text-xs);
  color: var(--fg-3);
  margin-top: var(--space-3);
}

.tasks-widget--requests-index .ind-staff {
  font-size: calc(var(--text-lg) * 0.88);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums;
  color: var(--fg-1);
  letter-spacing: -0.01em;
}

.tasks-widget--requests-index .ind-staff--gap {
  color: var(--danger);
}

.tasks-widget--requests-index .ind-staff--dash {
  color: var(--fg-muted);
  font-weight: var(--fw-medium);
  font-size: var(--text-sm);
}

.tasks-widget--requests-index .ind-health {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  line-height: 1;
  padding: 2px var(--space-8);
  border-radius: var(--radius-full);
  border: 1px solid var(--border);
  white-space: nowrap;
}

.tasks-widget--requests-index .ind-health__dot {
  width: 5px;
  height: 5px;
  border-radius: var(--radius-full);
  background: currentColor;
}

.tasks-widget--requests-index .ind-health--ready {
  border-color: color-mix(in srgb, var(--success) 70%, white);
  color: var(--success);
}

.tasks-widget--requests-index .ind-health--atrisk {
  border-color: color-mix(in srgb, var(--warning) 70%, white);
  color: var(--warning);
}

.tasks-widget--requests-index .ind-health--critical {
  border-color: color-mix(in srgb, var(--danger) 70%, white);
  color: var(--danger);
}

.tasks-widget--requests-index .ind-status {
  display: inline-flex;
  flex-direction: column;
  font-size: var(--text-xs);
  font-weight: var(--fw-medium);
  line-height: 1.2;
  white-space: nowrap;
}

.tasks-widget--requests-index .ind-status--danger {
  color: var(--danger);
}

.tasks-widget--requests-index .ind-status--warning {
  color: var(--warning);
}

.tasks-widget--requests-index .ind-state {
  font-size: var(--text-xs);
  font-weight: var(--fw-medium);
  white-space: nowrap;
}

.tasks-widget--requests-index .ind-state--info {
  color: var(--fg-2);
}

.tasks-widget--requests-index .ind-state--success {
  color: var(--success);
}

.tasks-widget--requests-index .ind-state--neutral {
  color: var(--fg-muted);
}

.tasks-widget--requests-index .ind-state--draft {
  color: var(--fg-3);
  font-style: italic;
}

.tasks-widget--requests-index .ind-owner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: var(--radius-full);
  background: var(--surface-2);
  color: var(--fg-2);
  font-size: var(--text-micro);
  font-weight: var(--fw-bold);
}

.tasks-widget--requests-index .ind-updated {
  font-size: var(--text-xs);
  color: var(--fg-3);
  text-align: center;
  font-variant-numeric: tabular-nums;
  min-width: 0;
}

.tasks-widget--requests-index .ind-dash {
  color: var(--fg-muted);
  font-size: var(--text-sm);
}

.tasks-widget--requests-index .index__empty {
  padding: var(--space-18) 10px;
  font-size: var(--text-sm);
  color: var(--fg-3);
}

/* ============================================================
   Matching: per-request service-lines expander (MatchingLinesView)
   ============================================================ */

/* Request cell hosts the disclosure caret beside its title/subtitle. */
.tasks-widget--requests-index .index__ident--req {
  display: flex;
  align-items: center;
  gap: var(--space-8);
}
.tasks-widget--requests-index .index__identtext {
  min-width: 0;
  overflow: hidden;
}
.tasks-widget--requests-index .index__expand {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  color: var(--fg-label);
  cursor: pointer;
  transition: transform 120ms ease, background 120ms ease;
}
.tasks-widget--requests-index .index__expand:hover { background: var(--surface-tint); color: var(--fg-2); }
.tasks-widget--requests-index .index__expand--open { transform: rotate(90deg); }

/* The expanded panel: a sibling block pinned to the left of the
   horizontally-scrolling index so its content stays in view. */
.tasks-widget--requests-index .index__lines {
  position: sticky;
  left: 0;
  width: 100%;
  box-sizing: border-box;
  background: var(--surface-tint);
  border-bottom: 1px solid var(--border);
  padding: var(--space-10) 14px var(--space-11);
}

.tasks-widget--requests-index .index__lines-head {
  display: flex;
  align-items: center;
  gap: var(--space-10);
  margin-bottom: var(--space-8);
}
.tasks-widget--requests-index .index__lines-title {
  font-size: var(--text-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--fg-label);
}
.tasks-widget--requests-index .index__lines-meta { font-size: var(--text-xs); color: var(--fg-3); }
.tasks-widget--requests-index .index__lines-controls {
  margin-left: auto;
  display: flex;
  gap: var(--space-8);
}

.tasks-widget--requests-index .index__lines-empty {
  padding: var(--space-9) 0;
  font-size: var(--text-sm);
  color: var(--fg-3);
}

.tasks-widget--requests-index .iline {
  display: flex;
  align-items: center;
  gap: var(--space-11);
  padding: var(--space-7) 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 55%, transparent);
}
.tasks-widget--requests-index .iline:first-child { border-top: none; }
.tasks-widget--requests-index .iline__code {
  flex: none; width: 116px;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--fg-2);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tasks-widget--requests-index .iline__date { flex: none; width: 150px; font-size: var(--text-xs); color: var(--fg-3); }
.tasks-widget--requests-index .iline__service {
  flex: 1; min-width: 0;
  font-size: var(--text-sm); color: var(--fg-1);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tasks-widget--requests-index .iline__staffing {
  flex: none; width: 60px; text-align: center;
  font-size: var(--text-xs); font-variant-numeric: tabular-nums; color: var(--fg-2); font-weight: var(--fw-semibold);
}
.tasks-widget--requests-index .iline__staffing--gap { color: var(--danger); }
.tasks-widget--requests-index .iline__status { flex: none; width: 120px; display: flex; justify-content: flex-start; }
.tasks-widget--requests-index .iline__action { flex: none; }

.tasks-widget--requests-index .iline-state {
  display: inline-flex; align-items: center;
  font-size: var(--text-xs); font-weight: var(--fw-semibold);
  line-height: 1; padding: 2px var(--space-8);
  border-radius: var(--radius-full, 999px);
  border: 1px solid var(--border);
  color: var(--fg-2);
  white-space: nowrap;
}
.tasks-widget--requests-index .iline-state--success { color: var(--success); border-color: color-mix(in srgb, var(--success) 60%, white); }
.tasks-widget--requests-index .iline-state--warning { color: var(--warning); border-color: color-mix(in srgb, var(--warning) 60%, white); }
.tasks-widget--requests-index .iline-state--danger  { color: var(--danger);  border-color: color-mix(in srgb, var(--danger) 60%, white); }

.tasks-widget--requests-index .iline-check {
  flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px;
  border: 1px solid #c4c9d2;
  border-radius: 4px;
  background: #fff;
  color: #365f8b;
  cursor: pointer;
}
.tasks-widget--requests-index .iline-check:hover { border-color: #365f8b; }
.tasks-widget--requests-index .iline-check--on { border-color: #365f8b; }
.tasks-widget--requests-index .iline-check svg { width: 12px; height: 12px; stroke: currentColor; stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round; display: none; }
.tasks-widget--requests-index .iline-check--on svg { display: inline-block; }

.tasks-widget--requests-index .iline-btn {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid transparent;
  border-radius: 8px;
  font: inherit;
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  line-height: 1;
  padding: 7px 10px;
  white-space: nowrap;
  cursor: pointer;
}
.tasks-widget--requests-index .iline-btn--primary { background: #365f8b; color: #fff; }
.tasks-widget--requests-index .iline-btn--primary:hover { background: #31557c; }
.tasks-widget--requests-index .iline-btn--secondary { background: #fff; border-color: #c4c9d2; color: var(--fg-2); }
.tasks-widget--requests-index .iline-btn--secondary:hover { background: var(--surface-tint); }
.tasks-widget--requests-index .iline-btn.is-disabled,
.tasks-widget--requests-index .iline-btn[disabled] { opacity: 0.5; cursor: not-allowed; }

.tasks-widget--requests-index .iline-flash {
  margin-bottom: var(--space-8);
  padding: var(--space-7) var(--space-10);
  border-radius: 8px;
  font-size: var(--text-xs);
  font-weight: var(--fw-medium);
}
.tasks-widget--requests-index .iline-flash--ok { color: #2d5179; background: #ecf1f5; }
.tasks-widget--requests-index .iline-flash--error { color: var(--danger); background: #f4e9e9; }
