/* =====================================================================
   THE AI ANALYST -- web/js/analyst.js: the section on one game's page and
   the analyst table on the record page. Every class is scoped to the an-
   prefix so it cannot touch another screen. Reuses the --v-* palette and the
   global .sechead primitive; invents no colour.

   A PASS IS DRAWN EXACTLY AS LARGE AS A TAKE. The verdict word has one size
   and one weight for all three verdicts; only its colour tone differs.
   ===================================================================== */

.an-section { margin-bottom: var(--sp-8); }

.an-label {
  margin: 0 0 var(--sp-6);
  font-family: var(--font-mono); font-size: 12.5px; letter-spacing: .06em;
  color: var(--v-warn-label);
}

.an-summary {
  margin: 0 0 var(--sp-6); max-width: 680px;
  font-size: 16px; line-height: 1.6; color: var(--v-t2);
}
.an-summary--withheld { color: var(--v-t5); font-style: italic; }
.an-none { margin: 0; max-width: 640px; font-size: 15px; line-height: 1.5; color: var(--v-t4); }

.an-family { margin-top: var(--sp-9); }
.an-family__head {
  margin: 0 0 var(--sp-5);
  font-family: var(--font-display); font-size: 13.5px; font-weight: 800;
  letter-spacing: .2em; text-transform: uppercase; color: var(--v-t4);
}

.an-call {
  padding: var(--sp-6) 0;
  border-top: 1px solid var(--v-edge);
}
.an-call__head { display: flex; align-items: baseline; gap: var(--sp-5); flex-wrap: wrap; }
.an-call__verdict {
  font-family: var(--font-display); font-weight: 800; font-size: 15px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--v-t1);
}
.an-call--take .an-call__verdict { color: var(--v-live-lit); }
.an-call--take_other_side .an-call__verdict { color: var(--v-live-lit); }
.an-call--pass .an-call__verdict { color: var(--v-t3); }
.an-call__what { font-size: 16px; color: var(--v-t1); }
.an-call__facts {
  display: flex; gap: var(--sp-7); flex-wrap: wrap; margin-top: var(--sp-3);
  font-family: var(--font-mono); font-size: 13.5px; color: var(--v-t4);
}
.an-call__reasons {
  margin: var(--sp-4) 0 0; padding: 0 0 0 var(--sp-6);
  display: grid; gap: var(--sp-2); font-size: 14.5px; line-height: 1.5; color: var(--v-t3);
}
.an-call__pass-price, .an-call__change {
  margin: var(--sp-3) 0 0; font-size: 13.5px; line-height: 1.5; color: var(--v-t5);
}
.an-call__estimate { font-family: var(--font-mono); font-size: 13.5px; color: var(--v-t4); }
.an-num { text-decoration: underline dotted; text-underline-offset: 3px; cursor: help; }
.an-call__head .an-call__result--badge {
  margin: 0 0 0 auto; padding: 2px 10px; border: 1px solid var(--v-edge); border-radius: 999px;
}
.an-call__result {
  margin: var(--sp-4) 0 0;
  font-family: var(--font-display); font-weight: 800; font-size: 13px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--v-t3);
}
.an-foot { margin: var(--sp-8) 0 0; font-size: 13px; color: var(--v-t6); max-width: 640px; }

/* ---- the UFC event section (web/js/analyst_ufc.js) ------------------- */
/* One block per bout under the same section head and label as the game section. The calls
   inside a bout are the same .an-call rows, so a PASS is as large as a TAKE here too. */
.an-ufc-bout { margin-top: var(--sp-9); padding-top: var(--sp-6); border-top: 2px solid var(--v-edge); }
.an-ufc-bout:first-of-type { margin-top: var(--sp-6); }
.an-ufc-bout__head {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display); font-size: 20px; font-weight: 800; color: var(--v-t1);
}
.an-ufc-bout__meta {
  margin: 0 0 var(--sp-5);
  font-family: var(--font-mono); font-size: 12.5px; letter-spacing: .06em; color: var(--v-t5);
}
.an-ufc-bout__result {
  margin: 0 0 var(--sp-5);
  font-family: var(--font-display); font-weight: 800; font-size: 13px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--v-t3);
}
.an-ufc-bout .an-family { margin-top: var(--sp-6); }

/* ---- the record table ---------------------------------------------- */
.an-rec__intro { margin: 0 0 var(--sp-6); max-width: 680px; font-size: 14.5px; line-height: 1.55; color: var(--v-t4); }
.an-rec__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.an-rec__table th, .an-rec__table td {
  padding: var(--sp-3) var(--sp-4); text-align: right; white-space: nowrap;
  border-bottom: 1px solid var(--v-edge); color: var(--v-t2);
}
.an-rec__table th:first-child { text-align: left; font-weight: 700; color: var(--v-t1); }
.an-rec__table thead th {
  font-family: var(--font-display); font-size: 11.5px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--v-t5);
}
.an-rec__withheld { text-align: left !important; white-space: normal !important; color: var(--v-t5) !important; }
.an-rec__recent { margin: 0; padding: 0 0 0 var(--sp-6); display: grid; gap: var(--sp-2); font-size: 14px; color: var(--v-t3); }

@media (max-width: 640px) {
  .an-rec__table { display: block; overflow-x: auto; }
}

/* THE CASE AGAINST sits under a take's reasons in the same type and the same
   list style: a reader weighs both, so neither is dressed up. */
.an-call__against { margin-top: var(--sp-5); }
.an-call__against-head {
  margin: 0;
  font-family: var(--font-display); font-size: 12.5px; font-weight: 800;
  letter-spacing: .16em; text-transform: uppercase; color: var(--v-t4);
}

/* WHAT THE ANALYSIS COULD NOT USE: the packet's own list of holes. */
.an-missing { margin-top: var(--sp-9); }
.an-missing__list {
  margin: 0; padding: 0 0 0 var(--sp-6);
  display: grid; gap: var(--sp-2); font-size: 14.5px; line-height: 1.5; color: var(--v-t3);
}
.an-missing__more { margin: var(--sp-3) 0 0; font-size: 13.5px; color: var(--v-t5); }

/* WHERE A CALCULATED NUMBER CAME FROM: one small sentence under the reason (or the summary) that
   uses it, written by the server from what the checker recomputed. Quiet by design, never a chip. */
.an-derived {
  display: block; margin-top: var(--sp-1); font-size: 12.5px; line-height: 1.4; color: var(--v-t5);
}
.an-derived--summary { margin: calc(-1 * var(--sp-3)) 0 var(--sp-6); max-width: 680px; }

/* The supervised-session briefs' record, under the analyst's own. */
.an-rec--pilot { margin-top: var(--sp-9); }

/* THE PUBLIC SAMPLE PAGE (web/sample.html). One column, the analyst section
   unchanged, a facts strip and an offer line. */
.sp-page { margin: 0 auto; max-width: 760px; padding: var(--sp-8) 16px var(--sp-9); }
.sp-intro { margin: 0 0 var(--sp-6); font-size: 15px; line-height: 1.55; color: var(--v-t3); max-width: 640px; }
.sp-facts { display: grid; gap: var(--sp-2); margin: 0 0 var(--sp-7); padding: 0;
  list-style: none; font-family: var(--font-mono); font-size: 13.5px; color: var(--v-t4); }
.sp-links { display: flex; gap: var(--sp-7); flex-wrap: wrap; margin: var(--sp-8) 0 var(--sp-6); font-size: 15px; }
.sp-links a { color: var(--v-t1); }
.sp-offer { margin: 0; max-width: 640px; font-size: 14.5px; line-height: 1.55; color: var(--v-t4); }
