.c45-lesson {
  --c45-ink:#192c3b;
  --c45-muted:#4c6272;
  --c45-line:#ced7de;
  --c45-blue:#145a86;
  --c45-warning:#9a5a16;
  color: var(--c45-ink);
  container-type: inline-size;
  min-width: 0;
  overflow-wrap: break-word;
}
.c45-lesson .c45-intro {
  margin: 0 0 2.5rem;
  padding: 0 0 1.75rem;
  border-bottom: 2px solid var(--c45-ink);
  max-width: var(--reading-width,42rem);
}
.c45-lesson .c45-intro h1 {
  font-size: clamp(1.8rem, 3.6vw, 2.5rem);
  line-height: 1.22;
  letter-spacing: -.035em;
  margin: 1.25rem 0 1rem;
  max-width: 26ch;
}
.c45-lesson .c45-intro > p {
  max-width: 68ch;
  color: var(--c45-muted);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.7;
}
.c45-lesson h2 {
  font-size: 1.4rem;
  line-height: 1.35;
  letter-spacing: -.02em;
  margin: 0 0 1.1rem;
}
.c45-lesson h3 {
  font-size: 1.08rem;
  line-height: 1.45;
  margin: 0 0 .8rem;
}
.c45-lesson h4 {
  font-size: .95rem;
  margin: 1.3rem 0 .6rem;
  line-height: 1.5;
}
.c45-lesson section[id] {
  scroll-margin-top: calc(var(--header-h) + 4rem);
  margin-block: 2.75rem 0;
  min-width: 0;
}
.c45-lesson .c45-reading {
  padding-top: 1.5rem;
  border-top: 1px solid var(--c45-line);
  max-width: var(--reading-width,42rem);
  margin-inline: 0;
}
.c45-lesson section > .table-scroll {
  max-width: var(--reading-width,42rem);
  margin-inline: 0;
}
.c45-lesson section > .table-scroll.table-wide {
  max-width: 100%;
}
.c45-lesson section > .ui-prose {
  margin-inline: 0;
}
.c45-lesson .ui-prose,
.c45-lesson .ui-prose p {
  font-size: 1rem;
  line-height: 1.75;
  max-width: var(--reading-width,42rem);
}
.c45-lesson p {
  line-height: 1.7;
  max-width: var(--reading-width,42rem);
}
.c45-lesson .c45-goals {
  max-width: var(--reading-width,42rem);
  margin: 1.4rem 0;
  color: var(--c45-muted);
  font-size: .9rem;
}
.c45-lesson summary {
  cursor: pointer;
  line-height: 1.6;
  font-weight: 600;
  text-underline-offset: .2em;
}
.c45-lesson details > ol,
.c45-lesson details > ul {
  margin-top: 1rem;
}
.c45-lesson .c45-goals .lesson-objectives {
  font-size: .9rem;
  margin: 1rem 0;
  line-height: 1.8;
}
.c45-lab {
  margin: 1.5rem 0 2rem;
  padding: 1.25rem 0;
  border-top: 2px solid var(--c45-blue);
  border-bottom: 1px solid var(--c45-line);
}
.c45-lesson .c45-field {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  color: var(--c45-muted);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.5;
  min-width: 0;
  margin: 1rem 0;
}
.c45-field select {
  max-width: 100%;
  min-width: 0;
  padding: .6rem .65rem;
  border: 1px solid #9daebc;
  border-radius: 4px;
  background: white;
  color: var(--c45-ink);
  font: inherit;
  font-weight: 500;
  line-height: 1.5;
}
.c45-lab input[type=range] {
  max-width: 100%;
  accent-color: var(--c45-blue);
}
.c45-controls {
  display: flex;
  gap: .7rem 1.15rem;
  align-items: end;
  flex-wrap: wrap;
  margin: 0 0 1.4rem;
}
.c45-controls > label {
  flex: 1 1 240px;
  margin: .5rem 0;
  max-width: 100%;
}
.c45-assumption {
  font-size: .82rem !important;
  color: var(--c45-muted);
  line-height: 1.65 !important;
  margin: 0 0 1rem;
}
.c45-data-note {
  font-size: .85rem;
  color: var(--c45-muted);
  overflow-wrap: anywhere;
}
.c45-lesson .c45-observation {
  padding: .85rem 0 .85rem 1rem;
  border-left: 3px solid var(--c45-blue);
  font-size: .91rem;
  line-height: 1.75;
  background: transparent;
  margin: 1.3rem 0 0;
  max-width: 72ch;
}
.c45-lesson mark {
  background: #f5e8c4;
  color: inherit;
  padding: .1em .12em;
  box-decoration-break: clone;
}
.c45-rule {
  font-weight: 600;
  border-left: 3px solid var(--c45-blue);
  padding: .7rem 0 .7rem 1rem;
  color: var(--c45-blue);
  margin: 1.3rem 0;
}
.c45-status {
  display: inline-block;
  font-size: .84rem;
  line-height: 1.5;
  padding: .25rem .5rem;
  border: 1px solid currentColor;
  border-radius: 3px;
  font-weight: 600;
  max-width: 100%;
}
.c45-pass {
  color: #256048;
  background: #f1f8f4;
}
.c45-fail {
  color: #93401f;
  background: #fdf5ed;
}
.c45-error {
  color: #8b4327;
  background: #fff4e9;
}
.c45-pending {
  color: #315772;
  background: #f2f7fb;
}
.c45-table-scroll {
  overflow: auto;
  max-width: 100%;
  min-width: 0;
  margin: 1.2rem 0;
  overscroll-behavior-x: contain;
}
.c45-lesson table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
  line-height: 1.65;
  font-variant-numeric: tabular-nums;
  text-align: left;
}
.c45-lesson caption {
  text-align: left;
  padding: 0 0 .7rem;
  font-size: .86rem;
  line-height: 1.6;
  font-weight: 600;
  color: var(--c45-muted);
}
.c45-lesson th,
.c45-lesson td {
  padding: .65rem .75rem;
  border-bottom: 1px solid var(--c45-line);
  vertical-align: top;
  min-width: 5rem;
}
.c45-lesson thead th {
  border-top: 1px solid var(--c45-line);
  background: #f4f7fa;
  font-weight: 600;
  color: var(--c45-ink);
}
.c45-lesson tbody th {
  font-weight: 600;
}
.c45-row-selected {
  background: #edf5fa;
  box-shadow: inset 3px 0 var(--c45-blue);
}
.c45-lesson .c45-json,
.c45-context,
.c45-trace-log pre {
  max-width: 100%;
  margin: .8rem 0;
  overflow: auto;
  background: #f5f8fa;
  color: var(--c45-ink);
  border: 1px solid var(--c45-line);
  padding: 1rem;
  font: .85rem/1.8 var(--font-mono,Consolas,monospace);
  border-radius: 3px;
}
.c45-context {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  max-height: 23rem;
}
.c45-mapping-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: start;
}
.c45-mapping-columns > *,
.c45-score-scales > *,
.c45-parameter-map > *,
.c45-metric-pair > *,
.c45-encoder-contract > *,
.c45-tuning-controls > * {
  min-width: 0;
}
.c45-record {
  margin: 0;
}
.c45-record dt {
  font: .8rem/1.6 var(--font-mono,Consolas,monospace);
  color: var(--c45-blue);
  overflow-wrap: anywhere;
}
.c45-record dd {
  margin: .25rem 0 1.2rem;
  font-size: .94rem;
  line-height: 1.7;
  border-bottom: 1px solid var(--c45-line);
  padding-bottom: .7rem;
}
.c45-audit-list {
  padding-left: 1.4rem;
  font-size: .96rem;
  line-height: 1.8;
  max-width: 72ch;
}
.c45-audit-list li {
  margin: .4rem 0;
}
.c45-evidence-canvas {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding: 0;
  border-top: 0;
}
.c45-policy {
  background: #f4f7fa;
  border-left: 4px solid var(--c45-blue);
  padding: 1.2rem 1.35rem;
}
.c45-policy blockquote {
  font-size: 1.12rem;
  line-height: 1.7;
  margin: .8rem 0;
  border: 0;
  padding: 0;
}
.c45-response {
  font-size: 1.25rem;
  line-height: 1.75;
  margin: 1rem 0 1.5rem;
  padding: 1rem 0;
  border-top: 1px solid var(--c45-line);
  border-bottom: 1px solid var(--c45-line);
  font-weight: 500;
}
.c45-response-picker {
  max-width: 36rem;
}
.c45-gate-expression {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  align-items: center;
  margin: 1.5rem 0;
  font-size: .9rem;
  line-height: 1.6;
}
.c45-gate-expression span {
  border-bottom: 2px solid var(--c45-blue);
  padding: .3rem 0;
}
.c45-gate-expression b {
  font-size: .8rem;
  font-weight: 400;
  color: var(--c45-muted);
}
.c45-gate-expression strong {
  flex-basis: 100%;
  padding-top: .5rem;
}
.c45-threat-source {
  border-left: 3px dashed #708494;
  padding: 1rem 1.1rem;
  background: #f6f8fa;
}
.c45-threat-source blockquote {
  font-size: .97rem;
  line-height: 1.8;
  margin: .7rem 0;
}
.c45-threat-path {
  display: flex;
  flex-direction: column;
  margin: 1.2rem 0;
  gap: 0;
}
.c45-threat-path > div {
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--c45-line);
}
.c45-threat-path strong {
  display: block;
  font-size: .95rem;
  line-height: 1.7;
}
.c45-threat-path code {
  display: block;
  font-size: .85rem;
  white-space: normal;
  overflow-wrap: anywhere;
  margin: .5rem 0;
}
.c45-auth-boundary {
  border: 2px dashed var(--c45-warning) !important;
  padding: 1rem !important;
  margin: .5rem 0;
}
.c45-auth-boundary.c45-boundary-enforced {
  border-color: var(--c45-blue) !important;
  border-style: solid !important;
}
.c45-auth-boundary p {
  font-size: .9rem;
  margin: .4rem 0 0;
}
.c45-metric-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
  border-top: 1px solid var(--c45-line);
  padding-top: 1rem;
}
.c45-metric-pair dt {
  font-size: .84rem;
  color: var(--c45-muted);
  line-height: 1.6;
}
.c45-metric-pair dd {
  font-size: 1.8rem;
  margin: .4rem 0;
  letter-spacing: -.03em;
}
.c45-evaluator-input {
  border-bottom: 1px solid var(--c45-line);
  margin: 1rem 0;
  padding-bottom: .8rem;
}
.c45-evaluator-input > p {
  font-size: .85rem;
  color: var(--c45-muted);
}
.c45-ci-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  list-style-position: inside;
  padding: 1rem 0;
  font-size: .9rem;
  line-height: 1.7;
  border-top: 1px solid var(--c45-line);
  border-bottom: 1px solid var(--c45-line);
}
.c45-release-result {
  font-size: 1rem;
  margin-top: 1.2rem;
}
.c45-trace-scroll {
  max-width: 100%;
  min-width: 0;
  overflow: auto;
  margin: 1.3rem 0;
  overscroll-behavior-inline: contain;
}
.c45-trace-plot {
  min-width: 540px;
}
.c45-trace-axis,
.c45-trace-row {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  gap: .7rem;
  align-items: center;
  min-height: 3.1rem;
  font-size: .88rem;
}
.c45-trace-axis > div {
  display: flex;
  justify-content: space-between;
  font-variant-numeric: tabular-nums;
  color: var(--c45-muted);
  font-size: .85rem;
}
.c45-trace-name {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 1px;
  min-height: 44px;
  padding: 5px 8px;
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: left;
  border: 1px solid transparent;
  background: transparent;
  width: 100%;
}
.c45-trace-name small {
  font-size: .82rem;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}
.c45-trace-name[aria-pressed=true] {
  background: #e9f3fa;
  border-color: #729ab4;
  color: var(--c45-blue);
}
.c45-trace-track {
  height: 2.7rem;
  position: relative;
  border-left: 1px solid var(--c45-line);
  background:
    repeating-linear-gradient(
      to right,
      transparent 0,
      transparent calc(25% - 1px),
      #dce4eb calc(25% - 1px),
      #dce4eb 25%);
}
.c45-trace-track > div {
  position: absolute;
  top: .5rem;
  min-width: 0;
  height: 1.7rem;
  border: 1px solid #5a879f;
  background: #dcecf6;
  color: #193e55;
  padding: 0;
  border-radius: 2px;
}
.c45-trace-track > .c45-span-selected {
  background: #145a86;
  border-color: #145a86;
}
.c45-parent .c45-trace-track > div {
  background: #dfe7ec;
  border-color: #8098aa;
}
.c45-trace-log {
  margin: 1.5rem 0;
}
.c45-trace-log h3 {
  font-size: .95rem;
}
.c45-trace-log pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.c45-tail {
  margin: 1.5rem 0;
  border-top: 1px solid var(--c45-line);
  padding-top: 1rem;
}
.c45-tail figcaption {
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.7;
}
.c45-tail-values {
  display: flex;
  gap: .3rem;
  flex-wrap: wrap;
  align-items: center;
  padding: 1rem 0;
}
.c45-tail-values span,
.c45-tail-values strong {
  border-bottom: 3px solid #7a9cb4;
  padding: .4rem;
  font-size: .85rem;
  font-variant-numeric: tabular-nums;
}
.c45-tail-values strong {
  border-color: var(--c45-warning);
  margin-left: auto;
  font-size: 1.4rem;
  color: var(--c45-warning);
}
.c45-chunks {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 1.2rem 0 1.6rem;
}
.c45-chunk {
  border-left: 3px solid #b3bec6;
  padding: .4rem 0 .6rem 1rem;
  margin: 0 !important;
  position: relative;
}
.c45-chunk-selected {
  border-color: var(--c45-blue);
  background: #f3f8fb;
}
.c45-chunk header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  font-size: .86rem;
  line-height: 1.6;
  color: var(--c45-muted);
}
.c45-chunk header strong {
  color: var(--c45-blue);
}
.c45-chunk p {
  font-size: .98rem;
  line-height: 1.8;
  margin: .55rem 0;
}
.c45-chunk small {
  font-size: .82rem;
  color: var(--c45-muted);
  line-height: 1.65;
  display: block;
}
.c45-score-scales {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}
.c45-score-scales > div {
  padding-top: .75rem;
  border-top: 2px solid var(--c45-line);
}
.c45-score-scales strong {
  display: block;
  font-size: .9rem;
  line-height: 1.6;
}
.c45-score-scales code {
  display: block;
  margin: .5rem 0;
  font-size: .95rem;
  overflow-wrap: anywhere;
}
.c45-score-scales p {
  font-size: .85rem;
  line-height: 1.7;
}
.c45-encoder-contract {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2rem minmax(0, 1fr);
  gap: .8rem;
  align-items: center;
  padding: 1.2rem 0;
  margin: 1rem 0;
  border-top: 1px solid var(--c45-line);
  border-bottom: 1px solid var(--c45-line);
}
.c45-encoder-contract strong {
  font-size: .94rem;
}
.c45-encoder-contract p {
  font-size: .84rem;
  color: var(--c45-muted);
  line-height: 1.65;
  margin: .5rem 0 0;
}
.c45-encoder-contract > span {
  font-size: 1.5rem;
  text-align: center;
  color: var(--c45-blue);
}
.c45-rank-branches {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0 0;
}
.c45-rank-branches section {
  margin: 0 !important;
  min-width: 0;
}
.c45-rank-branches ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.c45-rank-branches li + li {
  margin-top: .5rem;
}
.c45-rank-branches button {
  display: block;
  width: 100%;
  min-width: 0;
  padding: .65rem .5rem;
  display: block;
  text-align: left;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--c45-line);
  border-radius: 0;
  font-size: .9rem;
  line-height: 1.7;
  font-weight: 400;
  overflow-wrap: anywhere;
}
.c45-rank-branches button strong {
  margin-inline: .4rem;
}
.c45-rank-branches button span {
  font-size: .8rem;
  color: var(--c45-muted);
}
.c45-rank-branches button[aria-pressed=true] {
  background: #e9f3fa;
  box-shadow: inset 3px 0 var(--c45-blue);
}
.c45-fusion-join {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  justify-content: center;
  align-items: baseline;
  border-top: 1px solid var(--c45-line);
  border-bottom: 2px solid var(--c45-blue);
  padding: 1rem;
  margin: .7rem 0;
  font-size: .9rem;
}
.c45-fusion-join strong {
  color: var(--c45-blue);
}
.c45-parameter-map {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.c45-parameter-map dt {
  font-size: .85rem;
  color: var(--c45-blue);
  overflow-wrap: anywhere;
}
.c45-parameter-map dd {
  font-size: .85rem;
  color: var(--c45-muted);
  line-height: 1.6;
  margin: .25rem 0;
}
.c45-query {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.5 !important;
  margin: 1rem 0;
}
.c45-rag-variants {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.4rem;
  margin: 1.5rem 0;
}
.c45-rag-variants section {
  margin: 0 !important;
  min-width: 0;
  border-top: 2px solid var(--c45-blue);
  padding-top: 1rem;
}
.c45-rag-variants blockquote {
  padding: .7rem 0;
  margin: 0;
  font-size: .95rem;
  line-height: 1.75;
  border-top: 1px solid var(--c45-line);
}
.c45-rag-variants table {
  font-size: .9rem;
  min-width: 360px;
}
.c45-rag-variants th,
.c45-rag-variants td {
  min-width: auto;
  padding: .6rem .5rem;
}
.c45-formula {
  font-size: .9rem;
  line-height: 1.75;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.c45-tuning-controls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
  gap: 1rem;
}
.c45-tuning-controls label {
  margin: .6rem 0;
}
.c45-lora-equation {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  padding: 1.4rem 0;
  border-top: 1px solid var(--c45-line);
  border-bottom: 1px solid var(--c45-line);
  margin: 1rem 0;
}
.c45-lora-equation > div {
  flex: 1 1 10rem;
  min-width: 0;
}
.c45-lora-equation strong {
  display: block;
  font-size: 1.6rem;
  line-height: 1.4;
  font-weight: 500;
  color: var(--c45-blue);
}
.c45-lora-equation span,
.c45-lora-equation small {
  display: block;
  font-size: .84rem;
  line-height: 1.7;
}
.c45-lora-equation small {
  color: var(--c45-muted);
}
.c45-synthetic-review {
  border-left: 3px solid var(--c45-warning);
  padding: .8rem 1rem;
  background: #fcf7ee;
  margin: 1rem 0;
}
.c45-synthetic-review blockquote {
  margin: 0 0 .8rem;
  font-size: .96rem;
  line-height: 1.8;
}
.c45-synthetic-review p {
  margin: 0;
  font-size: .9rem;
}
.c45-learning-curve {
  margin: 1rem 0 1.5rem;
  max-width: var(--reading-width,42rem);
}
.c45-learning-curve figcaption {
  font-size: .9rem;
  line-height: 1.7;
  color: var(--c45-muted);
  font-weight: 600;
}
.c45-curve-scroll {
  max-width: 100%;
  overflow: auto;
  overscroll-behavior-inline: contain;
}
.c45-learning-curve svg {
  display: block;
  width: 100%;
  height: auto;
  min-width: 570px;
  max-width: 650px;
  margin: 1rem 0;
}
.c45-curve-legend {
  display: flex;
  gap: 1.5rem;
  font-size: .86rem;
  margin: 0;
}
.c45-curve-legend span:first-child {
  color: var(--c45-blue);
}
.c45-curve-legend span:nth-child(2) {
  color: var(--c45-warning);
}
.c45-lineage {
  display: flex;
  gap: 0;
  list-style: none;
  padding: 0;
  flex-wrap: wrap;
  margin: 1.5rem 0;
  border-top: 1px solid var(--c45-line);
}
.c45-lineage li {
  flex: 1 1 125px;
  padding: .9rem .8rem .9rem 0;
  border-bottom: 1px solid var(--c45-line);
}
.c45-lineage span {
  display: block;
  font-size: .8rem;
  color: var(--c45-muted);
  line-height: 1.7;
}
.c45-lineage strong {
  display: block;
  font-size: .88rem;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.c45-incident {
  border-left: 3px solid var(--c45-warning);
  padding: .8rem 1rem;
  margin: 1.3rem 0;
}
.c45-incident ol {
  font-size: .93rem;
  line-height: 1.8;
  padding-left: 1.2rem;
}
.c45-lesson :is(button, a, select, input, summary):focus-visible {
  outline: 3px solid #145a86;
  outline-offset: 3px;
}
@container (max-width:780px) {
  .c45-mapping-columns,
  .c45-rag-variants {
    grid-template-columns: 1fr;
  }
  .c45-mapping-columns > div + div {
    border-top: 1px solid var(--c45-line);
    padding-top: 1rem;
  }
  .c45-rag-variants {
    gap: 2rem;
  }
}
@container (max-width:640px) {
  .c45-rank-branches {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .c45-lesson .c45-intro h1 {
    font-size: 1.95rem;
  }
  .c45-tail-values strong {
    margin-left: 0;
  }
}
@container (max-width:520px) {
  .c45-metric-pair,
  .c45-encoder-contract,
  .c45-parameter-map {
    grid-template-columns: 1fr;
  }
  .c45-encoder-contract > span {
    transform: rotate(90deg);
  }
  .c45-controls {
    gap: .3rem;
  }
}
@media (max-width: 700px) {
  .c45-lesson th,
  .c45-lesson td {
    padding: .6rem;
  }
  .c45-lesson .c45-json,
  .c45-context,
  .c45-trace-log pre {
    font-size: .8rem;
    padding: .8rem;
  }
  .c45-lab {
    padding: 1rem 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c45-lesson * {
    scroll-behavior: auto;
    transition: none;
  }
}
@media print {
  .c45-trace-plot,
  .c45-learning-curve svg {
    min-width: 0;
  }
  .c45-table-scroll,
  .c45-curve-scroll {
    overflow: visible;
  }
  .c45-lesson details {
    display: block;
  }
  .c45-lab select,
  .c45-lab input {
    display: none;
  }
  .c45-learning-curve {
    break-inside: avoid;
  }
}
