/* ui/star.css — Star Ratings. Owned by W13.
   EVERY selector is prefixed .sr-. These files are concatenated into styles.css at
   build; an unprefixed rule silently restyles someone else's surface. */

.sr-wrap {
  --sr-indigo: #4330F5; --sr-depth: #271257; --sr-deep: #1A0B3D;
  --sr-bad: #C0435A; --sr-bad-wash: #FBE9ED;
  --sr-good: #2E9E6B; --sr-good-wash: #C9F0DD;
  --sr-warn: #C9871F; --sr-warn-wash: #FBF1DE;
  font-family: "Poppins", system-ui, sans-serif;
  color: var(--ink);
}
.sr-wrap h3 {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif);
  font-size: 18px; font-weight: 600; margin: 0 0 4px;
  display: flex; align-items: center; gap: 10px;
}
.sr-sec { margin: 28px 0; }
.sr-lede { color: var(--muted); font-size: 13.5px; margin: 0 0 14px; max-width: 74ch; }
.sr-count {
  background: var(--accent-wash); color: var(--info-ink); border-radius: 999px;
  padding: 1px 9px; font-size: 12px; font-weight: 600;
}

/* tabs */
.sr-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 22px; }
.sr-tab {
  background: none; border: 0; border-bottom: 2px solid transparent;
  padding: 10px 14px; font: inherit; font-size: 13.5px; font-weight: 500;
  color: var(--muted); cursor: pointer;
}
.sr-tab:hover { color: var(--ink); background: var(--hover); }
.sr-tab.on { color: var(--sr-indigo); border-bottom-color: var(--sr-indigo); font-weight: 600; }

/* ---- ABSENCE IS NOT ZERO. This must never look like a value. ---- */
.sr-nodata, .sr-nodata-inline {
  color: var(--muted); font-style: italic; font-size: 12.5px;
  border-bottom: 1px dotted var(--hairline);
}
.sr-nodata-cell {
  background: repeating-linear-gradient(135deg, #FAFAFC, #FAFAFC 6px, #F3F3F7 6px, #F3F3F7 12px);
  border: 1px dashed var(--line2); border-radius: 8px;
  padding: 12px 14px; color: var(--muted); font-size: 13px; font-style: italic;
}
.sr-nodata-cell b { color: var(--ink2); font-style: normal; }
.sr-row-nodata td { background: #FBFBFD; }

/* verdict */
.sr-verdict {
  background: var(--sr-depth);
  color: #fff; border-radius: 14px; padding: 24px 26px; margin-bottom: 24px;
}
.sr-verdict-eyebrow {
  text-transform: uppercase; letter-spacing: .12em; font-size: 10.5px;
  opacity: .72; margin-bottom: 8px; font-weight: 600;
}
.sr-verdict-line {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 21px; line-height: 1.42; font-weight: 500;
}
.sr-verdict-level {
  margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.16);
  font-size: 12.5px; opacity: .82;
}

/* cards */
.sr-grid { display: grid; gap: 12px; }
.sr-grid-4 { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.sr-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px;
  padding: 14px 16px;
}
.sr-card-hero { border-color: var(--sr-indigo); box-shadow: 0 0 0 3px var(--accent-wash); }
.sr-card-h {
  font-size: 12px; font-weight: 600; color: var(--muted-ink);
  display: flex; justify-content: space-between; align-items: baseline; gap: 8px;
}
.sr-weight { font-size: 10.5px; color: var(--faint); font-weight: 500; }
.sr-card-v { margin: 10px 0 6px; }
.sr-card-sub { font-size: 11.5px; color: var(--muted); line-height: 1.5; }
.sr-card-level {
  margin-top: 8px; font-size: 10px; text-transform: uppercase; letter-spacing: .08em;
  color: var(--faint); font-weight: 600;
}

/* stars */
.sr-stars { display: inline-flex; align-items: center; gap: 1px; }
.sr-star { color: var(--line2); font-size: 15px; line-height: 1; }
.sr-star.on { color: var(--sr-indigo); }
.sr-stars-capped .sr-star.on { color: var(--sr-bad); }
.sr-star-n { margin-left: 6px; font-size: 13px; font-weight: 600; color: var(--ink2); }

/* levers */
.sr-levers { display: grid; gap: 10px; }
.sr-lever {
  position: relative; overflow: hidden;
  background: var(--surface); border: 1px solid var(--line); border-radius: 10px;
  padding: 12px 14px;
}
.sr-lever-live { border-color: var(--sr-indigo); background: #FCFBFF; }
.sr-lever-bar {
  position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent-wash); z-index: 0;
}
.sr-lever-live .sr-lever-bar { background: var(--wash-lavender); }
.sr-lever > *:not(.sr-lever-bar) { position: relative; z-index: 1; }
.sr-lever-top { display: flex; justify-content: space-between; font-size: 13.5px; }
.sr-lever-w { font-weight: 700; color: var(--sr-depth); }
.sr-lever-ctl { display: flex; gap: 8px; align-items: center; margin: 6px 0; }
.sr-lever-h { font-size: 11.5px; color: var(--muted); }
.sr-lever-txt { font-size: 12.5px; color: var(--ink2); line-height: 1.55; }
.sr-tag {
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  padding: 2px 7px; border-radius: 999px;
}
.sr-tag-yes { background: var(--sr-good-wash); color: var(--pos-ink); }
.sr-tag-no { background: var(--line); color: var(--muted-ink); }

/* THE GUARDRAIL, on screen. Where a dollar figure would go. */
.sr-refusal {
  margin-top: 10px; padding: 10px 12px; border-radius: 8px;
  background: var(--sr-warn-wash); border-left: 3px solid var(--sr-warn);
  font-size: 12.5px; color: var(--warn-ink); line-height: 1.55;
}
.sr-refusal-k { font-weight: 700; display: block; margin-bottom: 3px; }

/* consequence ledger */
.sr-ledger { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sr-ledger-col { border-radius: 12px; padding: 16px 18px; border: 1px solid var(--line); }
.sr-ledger-money { background: var(--sr-bad-wash); border-color: #F0CDD5; }
.sr-ledger-demand { background: var(--surface-2); }
.sr-ledger-h {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-weight: 600; font-size: 14px;
  margin-bottom: 12px; color: var(--sr-depth);
}
.sr-ledger-row {
  display: grid; grid-template-columns: 130px 1fr; gap: 10px;
  padding: 8px 0; border-top: 1px solid rgba(0,0,0,.06); font-size: 12.5px; line-height: 1.5;
}
.sr-ledger-row b { color: var(--ink2); font-weight: 600; }
.sr-none span { font-weight: 700; color: var(--pos-ink); letter-spacing: .04em; }
.sr-ledger-what { margin-top: 12px; font-size: 12.5px; line-height: 1.55; }
.sr-ledger-why {
  margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line);
  font-size: 11.5px; color: var(--muted); line-height: 1.55; font-style: italic;
}

/* table */
.sr-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.sr-tbl th {
  text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .07em;
  color: var(--faint); font-weight: 700; padding: 8px 10px;
  border-bottom: 1px solid var(--line2);
}
.sr-tbl td { padding: 9px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.sr-tbl .num, .sr-tbl th.num { text-align: right; }
.sr-tbl tbody tr:hover td { background: var(--hover); }
.sr-row-capped td { background: #FEF7F8; }
.sr-row-capped:hover td { background: #FCEFF2; }
.sr-row-live td { background: #FBFAFF; }
.sr-row-sub td { background: var(--surface-2); font-size: 12px; color: var(--ink2); }
.sr-beds { display: block; font-size: 10.5px; color: var(--faint); }
.sr-ent { color: var(--muted); font-size: 11.5px; }
.sr-miss { color: var(--neg-ink); font-weight: 700; }
.sr-ok { color: var(--pos-ink); font-weight: 600; }
.sr-gain { color: var(--pos-ink); font-weight: 700; }
.sr-nogain { color: var(--muted); font-size: 11.5px; font-style: italic; }
.sr-gate { font-size: 11.5px; color: var(--muted-ink); line-height: 1.5; max-width: 40ch; }
.sr-note { margin-top: 4px; color: var(--warn-ink); font-style: italic; }


/* ---- the cascade ---- */
.sr-cascade { display: grid; gap: 12px; }
.sr-node {
  position: relative; background: var(--surface); border: 1px solid var(--line);
  border-radius: 12px; padding: 16px 18px 16px 46px;
}
.sr-node-n {
  position: absolute; left: 14px; top: 16px;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--sr-depth); color: #fff;
  font-size: 11px; font-weight: 700; display: grid; place-items: center;
}
.sr-node-t {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-weight: 600; font-size: 13.5px;
  color: var(--sr-depth); margin-bottom: 10px;
}
.sr-node-hero { border-color: var(--sr-indigo); box-shadow: 0 0 0 3px var(--accent-wash); }
.sr-node-hero .sr-node-n { background: var(--sr-indigo); }
.sr-node-basis, .sr-basis {
  margin-top: 8px; font-size: 11px; color: var(--faint); line-height: 1.5;
}

/* the grey node — the credibility node. Do NOT make this pretty. */
.sr-node-grey {
  background: repeating-linear-gradient(135deg, #FAFAFC, #FAFAFC 8px, #F4F4F8 8px, #F4F4F8 16px);
  border: 1px dashed var(--line2);
}
.sr-node-grey .sr-node-n { background: var(--hairline); }
.sr-grey-v {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 17px; color: var(--muted);
  font-style: italic; margin-bottom: 6px;
}
.sr-grey-why { font-size: 12px; color: var(--muted-ink); line-height: 1.6; max-width: 76ch; }

/* limbs — ALWAYS both */
.sr-limbs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sr-limb-h { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 5px; }
.sr-limb-h span { color: var(--muted); }
.sr-limb-track {
  position: relative; height: 9px; background: var(--line); border-radius: 999px;
  overflow: visible;
}
.sr-limb-fill { height: 100%; border-radius: 999px; background: var(--sr-good); }
.sr-limb-miss .sr-limb-fill { background: var(--sr-bad); }
.sr-limb-100 {
  position: absolute; left: 76.9%; top: -3px; bottom: -3px; width: 2px;
  background: var(--sr-depth);
}
.sr-limb-p { margin-top: 5px; font-size: 13px; font-weight: 700; }
.sr-limb-miss .sr-limb-p { color: var(--neg-ink); }
.sr-limb-tag {
  font-size: 10px; text-transform: uppercase; letter-spacing: .06em;
  background: var(--sr-bad-wash); color: var(--neg-ink); padding: 1px 6px;
  border-radius: 999px; font-weight: 700;
}

/* the 5x5 matrix — a STEP FUNCTION. The red region is enormous, and that is the point. */
.sr-matrix { border-collapse: separate; border-spacing: 3px; font-size: 11.5px; }
.sr-matrix th {
  font-size: 10px; color: var(--muted); font-weight: 600; padding: 3px 6px;
  text-transform: none; letter-spacing: 0; border: 0; text-align: center;
}
.sr-mx-corner { display: flex; flex-direction: column; font-size: 9px; color: var(--faint); }
.sr-mx {
  width: 62px; height: 34px; text-align: center; border-radius: 6px;
  font-weight: 700; padding: 0; border: 1px solid transparent;
}
.sr-mx-bad { background: var(--sr-bad-wash); color: var(--neg-ink); }
.sr-mx-good { background: var(--sr-good-wash); color: var(--pos-ink); }
.sr-mx-you {
  outline: 2.5px solid var(--sr-indigo); outline-offset: 1px;
  box-shadow: 0 2px 10px rgba(67, 48, 245, .3); position: relative;
}
.sr-mx-you::after {
  content: "◆"; position: absolute; top: -7px; right: -5px;
  color: var(--sr-indigo); font-size: 10px;
}
.sr-mx-key {
  display: flex; gap: 12px; align-items: center; margin-top: 8px;
  font-size: 11px; color: var(--muted);
}
.sr-mx-sw { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.sr-mx-you-key { color: var(--sr-indigo); font-weight: 700; }
.sr-caprule {
  margin-top: 12px; padding: 11px 13px; border-radius: 8px;
  background: var(--sr-bad-wash); border-left: 3px solid var(--sr-bad);
  font-size: 12.5px; color: var(--neg-ink); line-height: 1.55; font-weight: 500;
}

/* the composite bar */
.sr-comp-bar { display: flex; height: 30px; border-radius: 7px; overflow: hidden; }
.sr-comp-seg {
  display: grid; place-items: center; font-size: 10.5px; font-weight: 700;
  color: var(--muted-ink); background: var(--accent-wash);
  border-right: 1px solid #fff;
}
.sr-comp-live { background: var(--sr-indigo); color: #fff; }
.sr-comp-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; font-size: 11.5px; }
.sr-comp-li { color: var(--muted); }
.sr-comp-li.on { color: var(--sr-indigo); font-weight: 600; }
.sr-comp-score { margin-top: 12px; font-size: 13px; }
.sr-comp-dist {
  margin-left: 10px; font-size: 11.5px; color: var(--muted);
  background: var(--surface-2); padding: 2px 8px; border-radius: 999px;
}
.sr-then {
  margin-top: 12px; padding: 11px 13px; border-radius: 8px; font-size: 13px;
  background: var(--sr-good-wash); border-left: 3px solid var(--sr-good);
}
.sr-then-flat { background: var(--surface-2); border-left-color: var(--line2); }
.sr-honest {
  margin-top: 8px; font-size: 12px; color: var(--muted-ink); line-height: 1.55;
  font-style: italic;
}

/* money + break-even */
.sr-money-row {
  display: flex; justify-content: space-between; padding: 8px 0;
  border-bottom: 1px solid var(--line); font-size: 13px;
}
.sr-money-row b { font-variant-numeric: tabular-nums; }
.sr-money-net { border-bottom: 0; font-weight: 700; }
/* F4 — positive net = good, product-wide. The colour follows the RULING, not the magnitude.
   ---------------------------------------------------------------------------------------
   My first cut wrote `var(--good, #1a7f4b)` / `var(--bad, #b3261e)`. NEITHER VARIABLE EXISTS
   ANYWHERE IN THIS PRODUCT, so both silently fell through to a hard-coded hex — and not even
   the right green (#1a7f4b vs the system's #2E9E6B). It rendered, it looked fine, and it was a
   typed colour shipped in the same commit arguing that a convention must never be typed. A
   var() fallback is a SILENT DEFAULT: it cannot fail, so nothing tells you the token was never
   real. W53 is re-branding these tokens today and a hard-coded hex would simply not have moved.

   These are --pos-ink / --neg-ink, not --pos / --neg or --sr-good / --sr-bad, and the
   difference is not cosmetic: styles.css separates `semantic - fills` from
   `semantic - ink (AA-safe text)` on purpose. The fills (#2E9E6B / #C0435A) are for BARS and
   WASHES; against white they sit near 3:1 and fail AA for body text. This is a 13px bold
   NUMBER — it is text, so it takes the ink. The number that carries the ruling is the last
   thing in this product that should be hard to read. */
.sr-net-good { color: var(--pos-ink); }
.sr-net-bad { color: var(--neg-ink); }
.sr-money-basis {
  font-size: 11.5px; line-height: 1.45; color: var(--muted-ink);
  padding: 6px 0 2px; border-top: 1px solid var(--line);
}
.sr-be {
  margin-top: 12px; display: flex; gap: 14px; align-items: center;
  background: var(--accent-wash); border-radius: 10px; padding: 14px 16px;
}
.sr-be-n {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 26px; font-weight: 700;
  color: var(--sr-indigo); white-space: nowrap;
}
.sr-be-t { font-size: 12.5px; line-height: 1.55; color: var(--ink2); }
.sr-be-win { background: var(--sr-good-wash); display: block; font-size: 13px; }
.sr-be-grey { background: var(--surface-2); display: block; font-size: 12.5px; color: var(--muted); }
.sr-framing {
  margin-top: 12px; font-size: 12px; color: var(--muted-ink); line-height: 1.6;
  padding: 10px 12px; background: var(--surface-2); border-radius: 8px;
}
.sr-disagree {
  margin-top: 10px; font-size: 12px; line-height: 1.6;
  padding: 10px 12px; border-radius: 8px;
  background: var(--sr-warn-wash); border-left: 3px solid var(--sr-warn); color: var(--warn-ink);
}

/* mass drop + wave 2 */
.sr-shock { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 14px; }
.sr-shock-n {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 46px; font-weight: 700;
  color: var(--sr-bad); line-height: 1;
}
.sr-shock-t { font-size: 14px; line-height: 1.5; }
.sr-shock-why { margin-top: 8px; font-size: 12.5px; color: var(--ink2); line-height: 1.6; }
.sr-tbl-tight td, .sr-tbl-tight th { padding: 6px 10px; }
.sr-scenario {
  background: var(--sr-warn-wash); color: var(--warn-ink); font-size: 10px;
  text-transform: uppercase; letter-spacing: .08em; font-weight: 700;
  padding: 2px 8px; border-radius: 999px;
}
.sr-wave2 { background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; padding: 18px; }
.sr-w2-nums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sr-w2-n {
  display: block; font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 30px; font-weight: 700;
  color: var(--sr-depth);
}
.sr-w2-bad { color: var(--sr-bad); }
.sr-w2-good { color: var(--sr-good); }
.sr-w2-l { display: block; font-size: 12px; color: var(--muted); line-height: 1.45; margin-top: 3px; }
.sr-w2-point { margin-top: 14px; font-size: 13px; line-height: 1.6; }
.sr-assumption {
  margin-top: 12px; padding: 11px 13px; border-radius: 8px; font-size: 11.5px;
  line-height: 1.6; background: var(--sr-warn-wash); border-left: 3px solid var(--sr-warn);
  color: var(--warn-ink);
}

/* picker */
.sr-picker { display: flex; gap: 8px; align-items: center; margin-bottom: 14px; }
.sr-picker label { font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--faint); font-weight: 700; }
.sr-picker select {
  font: inherit; font-size: 13px; padding: 7px 10px;
  border: 1px solid var(--line2); border-radius: 8px; background: var(--surface); min-width: 280px;
}

/* submission */
.sr-nosub {
  background: var(--sr-depth);
  color: #fff; border-radius: 12px; padding: 20px 22px; margin-bottom: 22px;
}
.sr-nosub-h { font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 17px; font-weight: 600; line-height: 1.45; }
.sr-nosub-b { margin-top: 10px; font-size: 13px; line-height: 1.6; opacity: .86; }
.sr-deadline {
  background: var(--accent-wash); border-radius: 10px; padding: 14px 16px; font-size: 13.5px;
}
.sr-deadline div { margin-top: 6px; font-size: 12.5px; color: var(--ink2); line-height: 1.55; }
.sr-clocks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 14px; }
.sr-clock { border: 1px solid var(--line); border-radius: 10px; padding: 13px 15px; background: var(--surface); }
.sr-clock-l { font-size: 10.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--faint); font-weight: 700; }
.sr-clock-p { font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 14px; font-weight: 600; margin: 5px 0 6px; color: var(--sr-depth); }
.sr-clock-b { font-size: 11.5px; color: var(--muted); line-height: 1.55; }
.sr-coming {
  margin-top: 20px; padding: 14px 16px; border-radius: 10px;
  background: var(--sr-good-wash); font-size: 12.5px; line-height: 1.6; color: var(--pos-ink);
}

@media (max-width: 900px) {
  .sr-ledger, .sr-limbs, .sr-w2-nums, .sr-clocks { grid-template-columns: 1fr; }
}


/* A MEAN IS NOT A STAR. It gets a bar and a real number — it can never round up. */
.sr-mean { display: block; }
.sr-mean-bar {
  display: block; height: 8px; background: var(--line); border-radius: 999px;
  overflow: hidden; margin-bottom: 6px;
}
.sr-mean-fill { display: block; height: 100%; background: var(--sr-indigo); border-radius: 999px; }
.sr-mean-n {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 20px; font-weight: 700; color: var(--sr-depth);
  font-variant-numeric: tabular-nums;
}
.sr-mean-of { font-size: 11px; color: var(--faint); margin-left: 6px; }


/* ---- the mass drop ---- */
.sr-struct {
  background: var(--accent-wash); border-radius: 10px; padding: 14px 16px;
  font-size: 13px; line-height: 1.6; margin-bottom: 14px;
}
.sr-mini { display: inline-flex; align-items: flex-end; gap: 2px; height: 26px; }
.sr-mini-b { width: 9px; background: var(--sr-indigo); border-radius: 2px 2px 0 0; display: block; }

.sr-flow { border-radius: 12px; padding: 18px 20px; border: 1px solid var(--line); }
.sr-flow-done { background: var(--sr-good-wash); border-color: #A9E0C4; }
.sr-flow-open { background: var(--sr-warn-wash); border-color: #EBD5A8; }
.sr-flow-h {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-weight: 700; font-size: 12px;
  letter-spacing: .09em; color: var(--pos-ink); margin-bottom: 8px;
}
.sr-flow-open .sr-flow-h { color: var(--warn-ink); }
.sr-flow-b { font-size: 13.5px; line-height: 1.6; }
.sr-flow-forbid, .sr-flow-next {
  margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(0,0,0,.08);
  font-size: 12.5px; line-height: 1.6;
}

.sr-ba { display: grid; grid-template-columns: 1fr auto 1fr; gap: 18px; align-items: center; }
.sr-ba-col { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; }
.sr-ba-h {
  font-size: 10.5px; text-transform: uppercase; letter-spacing: .07em;
  color: var(--faint); font-weight: 700; margin-bottom: 10px;
}
.sr-ba-arrow { font-size: 22px; color: var(--sr-indigo); }
.sr-db { display: grid; grid-template-columns: 26px 1fr auto; gap: 8px; align-items: center; margin: 4px 0; }
.sr-db-l { font-size: 11.5px; color: var(--muted); font-weight: 600; }
.sr-db-t { height: 8px; background: var(--line); border-radius: 999px; overflow: hidden; }
.sr-db-f { display: block; height: 100%; background: var(--sr-indigo); border-radius: 999px; }
.sr-db-n { font-size: 11.5px; font-variant-numeric: tabular-nums; color: var(--ink2); }
.sr-db-nd .sr-db-n { color: var(--muted); font-style: italic; }

/* ---- the compliance channel ---- */
.sr-answer {
  display: flex; gap: 18px; align-items: center;
  background: var(--sr-good-wash); border-radius: 12px; padding: 18px 20px;
}
.sr-answer-n {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 40px; font-weight: 700;
  color: var(--pos-ink); line-height: 1;
}
.sr-answer-b { font-size: 13.5px; line-height: 1.6; }
.sr-tests { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-top: 14px; }
.sr-test { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 13px 15px; }
.sr-test-power { border-color: var(--sr-indigo); background: #FCFBFF; }
.sr-test-h { font-size: 10.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--faint); font-weight: 700; }
.sr-test-s {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 19px; font-weight: 700;
  color: var(--sr-depth); margin: 6px 0 7px;
}
.sr-test-b { font-size: 12px; color: var(--ink2); line-height: 1.55; }

.sr-armed {
  margin-top: 18px; border-radius: 12px; padding: 18px 20px;
  background: var(--sr-bad-wash); border: 1px solid #F0CDD5;
}
.sr-armed-h {
  font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-weight: 700; font-size: 15px;
  color: var(--neg-ink); margin-bottom: 8px;
}
.sr-armed-b { font-size: 13px; line-height: 1.6; }
.sr-armed-corr {
  margin: 12px 0; padding: 11px 13px; border-radius: 8px; background: rgba(255,255,255,.7);
  font-size: 12.5px; line-height: 1.6;
}
.sr-armed-rt {
  margin-top: 10px; font-size: 13px; font-weight: 600; color: var(--neg-ink);
}
.sr-armed .sr-tbl th { border-bottom-color: #E4B8C2; }
.sr-armed .sr-tbl td { border-bottom-color: #F0DBE0; }

.sr-shadow {
  margin-top: 18px; border-radius: 12px; padding: 18px 20px;
  background: var(--sr-deep); color: #fff;
}
.sr-shadow-h { font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 15px; font-weight: 600; line-height: 1.5; }
.sr-shadow-ladder { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 16px 0; }
.sr-shadow-step {
  display: flex; gap: 10px; align-items: flex-start;
  background: rgba(255,255,255,.08); border-radius: 8px; padding: 12px;
}
.sr-shadow-s { font-family: var(--font-head, 'Sansation', 'Poppins', sans-serif); font-size: 20px; font-weight: 700; color: var(--lime, #C5F019); }
.sr-shadow-t { font-size: 11.5px; line-height: 1.5; }
.sr-shadow-t b { display: block; margin-bottom: 3px; }
.sr-shadow-t div { opacity: .78; }
.sr-shadow .sr-basis { color: rgba(255,255,255,.66); }

@media (max-width: 900px) {
  .sr-ba { grid-template-columns: 1fr; }
  .sr-shadow-ladder { grid-template-columns: 1fr 1fr; }
}


/* EVERY NUMBER STATES ITS LEVEL. Regis is 8 entities and 72 homes; a group statistic
   wearing a sector's clothes is how you hand a CEO somebody else's number. */
.sr-levelpill {
  background: var(--sr-depth); color: #fff; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .07em; padding: 3px 9px; border-radius: 999px;
}
.sr-lvl { color: var(--faint); font-weight: 500; text-transform: none; letter-spacing: 0; }
.sr-cmp {
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 8px;
  padding: 10px 13px; font-size: 12.5px; color: var(--ink2); margin-bottom: 12px;
}

/* ==========================================================================================
 * THE SAFETY FLOOR ON #star.  (W40)
 * Ocean Mist (84.3% total) and Regis Port Macquarie (88.9% RN, statutory s176-15(3)) sat in
 * the league table, priced and ranked by bed count. They now sit ABOVE it, unranked. This is
 * not decoration: the visual break IS the argument. A breach must not look like a trade.
 * ========================================================================================== */
.sr-floor-block{border:2px solid var(--danger,#C0435A);border-radius:10px;padding:14px 16px;
  margin:0 0 22px;background:rgba(192,67,90,.04)}
.sr-floor-hd{font-weight:700;font-size:15px;color:var(--danger,#C0435A);letter-spacing:.01em}
.sr-floor-sub{margin:6px 0 12px;font-size:13px;line-height:1.5;color:var(--ink-2,#374151)}
.sr-tbl-floor{margin:0}
.sr-row-floor td{background:rgba(192,67,90,.05);vertical-align:top}
.sr-breach{color:var(--danger,#C0435A);font-weight:700}
.sr-floor-why{font-size:12px;line-height:1.45;max-width:420px}
.sr-row-floor-note td{font-size:12px;line-height:1.5;color:var(--ink-2,#6B7280);
  padding-top:0;padding-bottom:12px;border-bottom:1px solid rgba(192,67,90,.18)}
/* NAME THE STAR. Staffing is not Overall, and the page must never let them blur. */
.sr-substar{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3,#9A9AA6)}
.sr-nogain{color:var(--ink-2,#6B7280);font-size:12px}
.sr-nogain b{color:var(--ink,#111827)}

/* ===== OVER-PROVISION: is it achieving results?  (W40) ===================================== */
.sr-op-q{font-size:14px;line-height:1.55;color:var(--ink-2,#374151);margin:2px 0 14px;max-width:760px}
.sr-op-chart{background:var(--card,#fff);border:1px solid var(--line,#e4e4e7);border-radius:10px;
  padding:10px 8px 4px}
.sr-op-chart svg{width:100%;height:auto;display:block}
.sr-op-dot{fill:var(--ink-3,#9A9AA6);opacity:.32}
.sr-op-mine{fill:var(--accent,#4330F5);opacity:.95}
.sr-op-line-st{fill:none;stroke:var(--warn,#C9871F);stroke-width:2.5}
.sr-op-line-ov{fill:none;stroke:var(--accent,#4330F5);stroke-width:2.5;stroke-dasharray:5 3}
.sr-op-grid{stroke:var(--line,#E8E5F2);stroke-width:1}
.sr-op-ax{font-size:10px;fill:var(--ink-3,#9A9AA6)}
.sr-op-lbl{font-size:11px;fill:var(--ink-3,#9A9AA6)}
.sr-op-key{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--ink-2,#6B7280);margin:8px 2px 14px}
.sr-op-key i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;
  vertical-align:middle}
.sr-op-sw-st{background:var(--warn,#C9871F)}
.sr-op-sw-ov{background:var(--accent,#4330F5)}
.sr-op-sw-mine{background:var(--accent,#4330F5);height:8px;width:8px;border-radius:50%}
.sr-op-verdict{font-size:14px;line-height:1.6;padding:14px 16px;border-left:3px solid var(--accent,#4330F5);
  background:var(--tint,#F7F6FE);border-radius:0 8px 8px 0;margin:4px 0 16px}
.sr-op-tbl{margin:0 0 12px}
.sr-op-corr{font-size:13px;color:var(--ink-2,#6B7280);margin:0 0 14px}
/* THE CAVEAT IS NOT SMALL PRINT. A finding you cannot defend is worse than no finding. */
.sr-op-caveat{font-size:12.5px;line-height:1.55;padding:12px 14px;border:1px dashed var(--line,#d8d8de);
  border-radius:8px;color:var(--ink-2,#4a4a4a);margin-bottom:10px}
.sr-op-refuse{font-size:12.5px;line-height:1.55;padding:12px 14px;border-radius:8px;
  background:var(--tint-2,#faf7ef);color:var(--ink-2,#4a4a4a)}
