/* The Sites list (UI-5, #506): the approved Sites design. One row per site in a table at desktop width, a stacked card
   on a phone. Overrides the older board styles in opp-pipeline.css; text on tints uses the -ink shades (4.5:1). */
#view-opp-pipeline .op-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
#view-opp-pipeline .op-search { flex: 1 1 280px; max-width: 420px; display: flex; color: var(--ink); }
#view-opp-pipeline .op-search input { font: inherit; width: 100%; min-height: 44px; padding: 0 14px; border: 1px solid var(--line-strong);
  border-radius: 8px; background: var(--panel); box-sizing: border-box; }
#view-opp-pipeline .op-filter-btn, #view-opp-pipeline .op-add { min-height: 44px; padding: 0 16px; }
#view-opp-pipeline .op-total { margin-left: auto; color: var(--muted-ink); font-size: 13px; }
#view-opp-pipeline .op-needs { display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: center; background: var(--panel);
  border: 1px solid var(--line); border-radius: 12px; padding: 14px 18px; margin-bottom: 12px; font-size: 14px; }
#view-opp-pipeline .op-need { display: inline-flex; gap: 8px; align-items: center; }
#view-opp-pipeline .op-need-n { font-weight: 700; border-radius: 999px; padding: 2px 9px; font-size: 12px; }
#view-opp-pipeline .op-need-no .op-need-n { background: var(--no-bg); color: var(--no); }
#view-opp-pipeline .op-need-warn .op-need-n { background: var(--warn-bg); color: var(--warn-ink); }
#view-opp-pipeline .op-need-info .op-need-n { background: #e8eff8; color: #1d4e89; }
#view-opp-pipeline .op-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
#view-opp-pipeline .op-pill { font: inherit; min-height: 40px; padding: 0 14px; border-radius: 999px; cursor: pointer;
  background: var(--panel); color: var(--ink); border: 1px solid var(--line-strong); }
#view-opp-pipeline .op-pill[aria-pressed="true"] { background: var(--black, #0d0d0d); color: #fff; border-color: var(--black, #0d0d0d); font-weight: 600; }
#view-opp-pipeline .op-pill-n { opacity: .8; margin-left: 2px; }

/* The table */
#view-opp-pipeline .op-board.op-table { display: block; overflow: visible; padding: 0; background: var(--panel);
  border: 1px solid var(--line); border-radius: 12px; }
#view-opp-pipeline .op-head, #view-opp-pipeline .op-row { display: grid; align-items: center; gap: 12px; padding: 12px 18px;
  grid-template-columns: 2.1fr .7fr 1.7fr 1.2fr 2.1fr 1fr .8fr .9fr 64px; }
#view-opp-pipeline .op-head { font-size: 12px; font-weight: 600; color: var(--muted-ink); text-transform: uppercase; letter-spacing: .04em;
  border-bottom: 1px solid var(--line); }
#view-opp-pipeline .op-card.op-row { background: transparent; border: 0; border-bottom: 1px solid #eef0f3; border-radius: 0; margin: 0;
  font-size: 14px; min-height: 44px; }
#view-opp-pipeline .op-card.op-row:hover, #view-opp-pipeline .op-card.op-row:focus-visible { background: var(--gold-tint); }
#view-opp-pipeline .op-card.op-row:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
#view-opp-pipeline .op-c { min-width: 0; overflow-wrap: anywhere; }
#view-opp-pipeline .op-title { font-weight: 600; font-size: 14px; }
#view-opp-pipeline .op-meta { color: var(--muted-ink); font-size: 13px; }
/* The column header says it at desktop width; the words stay inline for screen readers (and in the row's text). */
#view-opp-pipeline .op-k { font-size: 0; }
#view-opp-pipeline .op-c-grade { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
#view-opp-pipeline .op-grade { display: inline-block; min-width: 28px; text-align: center; font-weight: 700; border-radius: 6px; padding: 3px 0;
  background: var(--muted-bg); color: var(--muted-ink); }
#view-opp-pipeline .op-grade-a, #view-opp-pipeline .op-grade-b { background: var(--go-bg); color: var(--go-ink); }
#view-opp-pipeline .op-grade-c { background: var(--warn-bg); color: var(--warn-ink); }
#view-opp-pipeline .op-grade-d, #view-opp-pipeline .op-grade-f { background: var(--no-bg); color: var(--no); }
#view-opp-pipeline .op-grade-say { font-size: 11px; color: var(--muted-ink); }
#view-opp-pipeline .op-c-checks { display: flex; flex-direction: column; gap: 5px; }
#view-opp-pipeline .op-bar10 { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 2px; max-width: 150px; }
#view-opp-pipeline .op-seg { height: 8px; border-radius: 2px; background: var(--muted-bg); }
#view-opp-pipeline .op-seg-pass { background: var(--go); }
#view-opp-pipeline .op-seg-review { background: var(--warn-mark); }
#view-opp-pipeline .op-seg-fail { background: var(--no); }
#view-opp-pipeline .op-checks-text { font-size: 12px; color: var(--ink); }
#view-opp-pipeline .op-checks-none, #view-opp-pipeline .op-days-none { color: var(--muted-ink); font-size: 12px; }
#view-opp-pipeline .op-derived { color: var(--warn-ink); font-size: 11px; font-weight: 600; }
#view-opp-pipeline .op-next-none { color: var(--muted-ink); }
#view-opp-pipeline .op-c-days { color: var(--muted-ink); font-size: 13px; }
#view-opp-pipeline .op-late { color: var(--no); font-weight: 700; }
#view-opp-pipeline .op-late-word { font-size: 11px; text-transform: uppercase; }
#view-opp-pipeline .op-c-more .op-more > summary { min-height: 36px; display: flex; align-items: center; color: var(--muted-ink); cursor: pointer; }
#view-opp-pipeline .op-c-more .op-more[open] { position: relative; }
#view-opp-pipeline .op-c-more .op-more[open] > :not(summary) { position: absolute; right: 0; z-index: 3; background: var(--panel); min-width: 220px;
  border: 1px solid var(--line); border-radius: 10px; padding: 10px; box-shadow: 0 8px 20px rgba(0, 0, 0, .12); }
#view-opp-pipeline .op-c-more .op-more[open] > .op-actions { top: 100%; margin-top: 30px; }
#view-opp-pipeline .op-row > .op-move-form, #view-opp-pipeline .op-row > .fb-slot, #view-opp-pipeline .op-row > .op-notice { grid-column: 1 / -1; }
#view-opp-pipeline .op-hint { color: var(--muted-ink); font-size: 13px; margin: 10px 0; }

/* Narrower than the table: each site a card, as the phone design draws it */
@media (max-width: 1100px) {
  #view-opp-pipeline .op-head { display: none; }
  #view-opp-pipeline .op-row { grid-template-columns: 44px minmax(0, 1fr) auto; grid-template-areas:
      "grade site more" "grade stage stage" "checks checks checks" "next next next" "who who who" "due due days"; gap: 6px 12px; padding: 14px 16px; }
  #view-opp-pipeline .op-c-grade { grid-area: grade; }
  #view-opp-pipeline .op-c-site { grid-area: site; }
  #view-opp-pipeline .op-c-more { grid-area: more; }
  #view-opp-pipeline .op-c-stage { grid-area: stage; }
  #view-opp-pipeline .op-c-checks { grid-area: checks; }
  #view-opp-pipeline .op-c-next { grid-area: next; }
  #view-opp-pipeline .op-c-who { grid-area: who; color: var(--muted-ink); font-size: 13px; }
  #view-opp-pipeline .op-c-due { grid-area: due; font-size: 13px; }
  #view-opp-pipeline .op-c-days { grid-area: days; justify-self: end; }
  #view-opp-pipeline .op-k { font-size: inherit; color: var(--muted-ink); font-weight: 600; }
  #view-opp-pipeline .op-bar10 { max-width: none; }
  #view-opp-pipeline .op-total { margin-left: 0; flex-basis: 100%; }
}
#view-opp-pipeline .op-search .sr-only { color: var(--ink); }
