// com.android.ProcessState styles. The explorer lives in the timeline details
// panel (.pf-ps-detailpanel): the relationship graph (the shared LayeredGraph
// charts_svg widget) and a tabbed Current / Process list pane.

// Clickable pid links inside the grids (rendered by grid_helpers.gridSchema).
.pf-ps-link {
  color: var(--pf-color-primary, #1565c0);
  cursor: pointer;
  &:hover {
    text-decoration: underline;
  }
}

// Diff palette (green added / amber changed / red removed), shared by the
// graph legend swatches and the Process-list "change" column badge. Matches
// the DIFF_ADDED / DIFF_REMOVED edge colours in process_graph.ts.
.pf-ps-diff-added {
  color: #2e7d32;
}
.pf-ps-diff-changed {
  color: #ef6c00;
}
.pf-ps-diff-removed {
  color: #c62828;
}
.pf-ps-diff-badge {
  font-weight: bold;
  white-space: nowrap;
}
.pf-ps-diff-leg {
  font-size: 11px;
  margin-left: 10px;
}

// ---- shared layout bits (used by BOTH the full page and the details panel) ----
.pf-ps-tabs {
  flex: 0 0 auto;
  display: flex;
  gap: 2px;
  padding: 4px 0;
  border-bottom: 1px solid var(--pf-color-border, #eee);
}
.pf-ps-tab {
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  padding: 5px 12px;
  border-bottom: 2px solid transparent;
  color: var(--pf-color-text-muted, #777);
}
.pf-ps-tab--on {
  color: var(--pf-color-text, #111);
  font-weight: bold;
  border-bottom-color: var(--pf-color-primary, #1565c0);
}
.pf-ps-tabbody {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.pf-ps-tabbody > .pf-data-grid {
  flex: 1;
  min-height: 0;
}
.pf-ps-tabbody--scroll {
  display: block;
  overflow: auto;
  padding-top: 8px;
}
.pf-ps-card {
  border: 1px solid var(--pf-color-border, #e2e2e2);
  margin-bottom: 8px;
  .pf-data-grid {
    max-height: 220px;
  }
  &:last-child {
    margin-bottom: 0;
  }
}
.pf-ps-card-h {
  background: var(--pf-color-background-secondary);
  padding: 4px 10px;
  font-weight: bold;
  font-size: 11px;
  text-transform: uppercase;
  color: var(--pf-color-text-muted, #555);
}
.pf-ps-card-b {
  padding: 8px 10px;
}
.pf-ps-detail-h {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
}
.pf-ps-detail-title {
  font-size: 14px;
  font-weight: bold;
}
.pf-ps-detail-sub {
  font-family: monospace;
  color: var(--pf-color-text-muted, #777);
}
.pf-ps-none {
  padding: 6px 2px;
  color: var(--pf-color-text-muted, #999);
  font-size: 12px;
}
// ---- timeline details panel: the whole explorer (no separate page) ----
// `.pf-ps-detailpanel` is the DetailsShell ROOT; make its `.pf-content` a flex
// column so the SplitPanel fills the drawer's real height. The split's
// orientation (and resize handle) is owned by the shared SplitPanel widget; we
// only flip `direction` based on the drawer height.
.pf-ps-detailpanel {
  height: 100%;
  min-height: 0;
  font-size: 12px;
  .pf-content {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }
  // Wrapper that hands the SplitPanel the drawer height (and whose height we
  // measure to choose the orientation).
  .pf-ps-splitwrap {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    display: flex;
  }
  // The graph fills its SplitPanel pane.
  .pf-lgraph-graph {
    flex: 1;
    min-height: 0;
  }
  // Detail pane (tabs + tables) fills the other pane.
  .pf-ps-bottom {
    // The SplitPanel pane (.pf-split-panel__second) is a sized flex item but is
    // itself display:block, so flex:1 here has no flex parent to grow against.
    // Fill the pane explicitly (like the graph does) so the tab body — and the
    // fillHeight DataGrid inside it — gets a bounded height and scrolls instead
    // of overflowing and being clipped.
    height: 100%;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0 8px;
  }
}
