@layer reset, tokens, base, layout, components, states;

@font-face {
  font-family: "Barlow";
  src: url("../fonts/Barlow-Regular.90af7baeeb14.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

/* Phase 2 evaluation: position first, an inset work deck, and one stable question stack. */
@layer layout {
  .evaluation-shell {
    max-inline-size: 1440px;
    margin-inline: auto;
  }

  .evaluation-rail {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--sp-5);
    align-items: center;
    padding: var(--sp-3) var(--sp-5);
    border-block-end: 1px solid var(--edge-600);
  }

  .evaluation-deck {
    max-inline-size: 1180px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: 268px minmax(0, 1fr);
    gap: 1px;
    align-items: stretch;
    background: var(--edge-600);
  }
}

@layer components {
  .sr-only {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .evaluation-rail__cycle,
  .evaluation-rail__subject {
    overflow-wrap: anywhere;
  }

  .evaluation-rail__cycle {
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
    font-weight: 600;
  }

  .evaluation-rail__subject {
    color: var(--on-700);
    font-size: var(--t-sm);
  }

  .evaluation-stepbar {
    display: flex;
    gap: var(--sp-4);
    align-items: center;
    padding: var(--sp-3) var(--sp-5);
    border-block: 1px solid var(--edge-600);
    background: var(--field-800);
  }

  .evaluation-stepbar__position {
    color: var(--on-550);
    font-family: var(--f-num);
    font-size: var(--t-xs);
  }

  .evaluation-stepbar__position b {
    color: var(--on-900);
    font-weight: 500;
  }

  .evaluation-stepbar__meter {
    display: flex;
    flex: 1;
    gap: 2px;
    min-inline-size: 0;
  }

  .evaluation-stepbar__meter span {
    flex: 1;
    block-size: 6px;
    border: 1px solid var(--edge-600);
    background: var(--field-700);
  }

  .evaluation-stepbar__meter .is-complete {
    border-color: var(--teal-400);
    background: var(--teal-400);
  }

  .evaluation-stepbar__meter .is-current {
    border: 2px solid var(--teal-400);
    background: transparent;
  }

  .evaluation-stepbar__summary {
    color: var(--on-700);
    font-size: var(--t-sm);
  }

  .evaluation-index h2 {
    color: var(--on-550);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .evaluation-index {
    min-inline-size: 0;
    padding: var(--sp-5);
    background: var(--field-900);
  }

  .evaluation-index > p {
    margin-block-start: var(--sp-2);
    color: var(--on-700);
    font-size: var(--t-xs);
  }

  .evaluation-index ol {
    display: grid;
    gap: 1px;
    margin-block-start: var(--sp-5);
    background: var(--edge-600);
  }

  .evaluation-index a {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    gap: var(--sp-2);
    align-items: center;
    min-block-size: var(--tap);
    padding: var(--sp-2);
    background: var(--field-700);
    color: var(--on-700);
    font-size: var(--t-xs);
    text-decoration: none;
  }

  .evaluation-index a:hover {
    background: var(--field-800);
    color: var(--on-900);
  }

  .evaluation-index a span {
    font-family: var(--f-num);
  }

  .evaluation-index .is-complete a {
    color: var(--on-teal);
    background: var(--teal-400);
  }

  .evaluation-plate {
    min-inline-size: 0;
    min-block-size: 48rem;
    padding: var(--sp-6) var(--sp-7) var(--sp-7);
    background: var(--plate-100);
    color: var(--plate-ink);
    box-shadow: inset 0 0 0 1px var(--plate-rule), var(--plate-lift);
  }

  .evaluation-plate :focus-visible {
    outline-color: var(--focus-plate);
  }

  .evaluation-plate__head h1 {
    max-inline-size: 18ch;
    font-size: clamp(var(--t-2xl), 5vw, var(--t-3xl));
    line-height: 1.04;
    letter-spacing: -0.025em;
    text-wrap: balance;
  }

  .evaluation-plate__head p {
    max-inline-size: 65ch;
    margin-block-start: var(--sp-3);
    color: var(--plate-ink-2);
    font-size: var(--t-md);
  }

  .save-annunciator:empty {
    display: none;
  }

  .save-annunciator:not(:empty),
  .evaluation-error {
    margin-block-start: var(--sp-5);
    padding: var(--sp-3) var(--sp-4);
    border-block: 1px solid var(--amber-plate);
    color: var(--plate-ink);
    font-weight: 600;
  }

  .save-annunciator[data-state="failed"],
  .evaluation-error {
    border-color: var(--alert-plate);
  }

  .save-annunciator[data-state="recovered"] {
    border-color: var(--teal-plate);
  }

  .question-stack {
    display: grid;
    margin-block-start: var(--sp-6);
    border-block-start: 1px solid var(--plate-rule);
  }

  .question-slot {
    min-block-size: 15rem;
    padding-block: var(--sp-6);
    border-block-end: 1px solid var(--plate-rule);
  }

  .question-slot[hidden] {
    display: none;
  }

  .question-slot--follow-up {
    min-block-size: 0;
    margin-block-start: var(--sp-5);
    margin-inline-start: var(--sp-5);
    padding: 0 0 var(--sp-6) var(--sp-5);
    border-block-end: 1px solid var(--plate-rule);
    border-inline-start: 1px solid var(--plate-rule);
  }

  .question-slot fieldset {
    min-inline-size: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .question-slot legend {
    display: flex;
    gap: var(--sp-3);
    align-items: baseline;
    max-inline-size: 68ch;
    padding: 0;
    font-size: var(--t-xl);
    line-height: 1.38;
  }

  .question-number {
    flex: none;
    color: var(--teal-plate);
    font-family: var(--f-num);
    font-size: var(--t-sm);
    font-weight: 700;
  }

  .question-optional {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 600;
  }

  .question-preview {
    max-inline-size: 65ch;
    margin-block-start: var(--sp-3);
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .answer-scale {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
    margin-block-start: var(--sp-5);
    background: var(--plate-rule);
  }

  .answer-scale label {
    position: relative;
    min-inline-size: 0;
    background: var(--plate-200);
  }

  .answer-scale input {
    position: absolute;
    opacity: 0;
  }

  .answer-scale span {
    display: grid;
    align-content: start;
    min-block-size: 6.25rem;
    padding: var(--sp-3);
    color: var(--plate-ink-2);
    cursor: pointer;
  }

  .answer-scale b {
    margin-block-end: var(--sp-2);
    color: var(--plate-ink);
    font-family: var(--f-num);
    font-size: var(--t-lg);
  }

  .answer-scale input:checked + span {
    background: var(--plate-ink);
    color: var(--plate-100);
  }

  .answer-scale input:checked + span b {
    color: var(--plate-100);
  }

  .answer-scale input:focus-visible + span {
    outline: 3px solid var(--focus-plate);
    outline-offset: -3px;
  }

  .question-slot textarea {
    inline-size: 100%;
    min-block-size: 10rem;
    margin-block-start: var(--sp-5);
    padding: var(--sp-4);
    resize: vertical;
    border: 1px solid var(--plate-ink);
    background: var(--plate-200);
    color: var(--plate-ink);
    caret-color: var(--focus-plate);
    font: inherit;
    line-height: 1.55;
  }

  .non-answer {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2) var(--sp-5);
    margin-block-start: var(--sp-4);
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .non-answer label {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
  }

  .non-answer input {
    inline-size: 1.1rem;
    block-size: 1.1rem;
    margin-inline-end: var(--sp-2);
    accent-color: var(--teal-plate);
  }

  .answer-save {
    min-block-size: var(--tap);
    margin-block-start: var(--sp-4);
    padding-inline: var(--sp-4);
    border: 1px solid var(--plate-ink);
    background: transparent;
    color: var(--plate-ink);
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .answer-save:hover {
    background: var(--plate-200);
  }

  .evaluation-foot {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-4) var(--sp-6);
    align-items: center;
    justify-content: space-between;
    margin-block-start: var(--sp-6);
  }

  .evaluation-foot p {
    flex: 1 1 26rem;
    max-inline-size: 68ch;
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .evaluation-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: 56px;
    padding-inline: var(--sp-7);
    border: 1px solid var(--brass-600);
    background: var(--brass-600);
    color: var(--on-brass);
    font-family: var(--f-lbl);
    font-size: var(--t-md);
    font-weight: 700;
    text-decoration: none;
  }

  .evaluation-primary:hover {
    background: var(--brass-500);
  }

  .evaluation-primary:disabled,
  .evaluation-primary:disabled:hover {
    border-color: var(--plate-rule);
    background: var(--plate-200);
    color: var(--plate-ink-2);
    cursor: not-allowed;
  }

  .evaluation-empty {
    padding-block: var(--sp-7);
  }

  .evaluation-empty p {
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
  }
}

@layer states {
  @media (max-width: 1080px) {
    .evaluation-deck {
      grid-template-columns: 216px minmax(0, 1fr);
    }
  }

  @media (max-width: 800px) {
    .evaluation-rail,
    .evaluation-deck {
      grid-template-columns: minmax(0, 1fr);
    }

    .evaluation-rail {
      gap: var(--sp-3);
      padding-inline: var(--sp-4);
    }

    .evaluation-rail .theme-control {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
    }

    .evaluation-stepbar {
      flex-wrap: wrap;
      row-gap: var(--sp-2);
      padding: var(--sp-3) var(--sp-4);
    }

    .evaluation-stepbar__summary {
      flex-basis: 100%;
    }

    .evaluation-stepbar__meter {
      order: 3;
      flex-basis: 100%;
    }

    .evaluation-index {
      order: 2;
      min-block-size: 0;
      padding: var(--sp-4);
    }

    .evaluation-index ol {
      grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
    }

    .evaluation-plate {
      order: 1;
      padding: var(--sp-5) var(--sp-4) var(--sp-6);
    }

    .question-slot--follow-up {
      margin-inline-start: var(--sp-3);
      padding-inline-start: var(--sp-3);
    }

    .answer-scale {
      grid-template-columns: minmax(0, 1fr);
    }

    .answer-scale span {
      grid-template-columns: 2rem minmax(0, 1fr);
      align-items: center;
      min-block-size: var(--tap);
    }

    .answer-scale b {
      margin-block-end: 0;
    }

    .evaluation-primary {
      inline-size: 100%;
    }
  }

  @media (forced-colors: active) {
    .evaluation-index,
    .evaluation-plate,
    .answer-scale label,
    .question-slot textarea {
      border-color: CanvasText;
      background: Canvas;
      color: CanvasText;
      box-shadow: none;
    }

    .evaluation-stepbar__meter .is-complete,
    .evaluation-index .is-complete a,
    .answer-scale input:checked + span {
      forced-color-adjust: none;
      background: Highlight;
      color: HighlightText;
    }
  }

  @media print {
    .evaluation-rail,
    .evaluation-stepbar,
    .evaluation-index,
    .answer-save,
    .evaluation-primary {
      display: none;
    }

    .evaluation-deck {
      display: block;
      background: none;
    }
    .answer-scale {
      background: #fff;
    }


    .evaluation-plate,
    .answer-scale label,
    .question-slot textarea {
      border-color: #000;
      background: #fff !important;
      color: #000 !important;
      box-shadow: none;
    }
  }
}

@layer reset, tokens, base, layout, components, states;

/* Phase 1 operate surfaces: one reading plate, unresolved state first, no card grid. */
@layer layout {
  .access-frame {
    max-inline-size: 1440px;
    margin-inline: auto;
    padding: var(--sp-6) var(--sp-5) var(--sp-7);
  }

  .access-console {
    border-block: 1px solid var(--edge-600);
  }

  .access-console__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--sp-6);
    align-items: end;
    padding: var(--sp-6) var(--sp-5);
    background: var(--plate-100);
    color: var(--plate-ink);
  }

  .access-console__head h2 {
    margin-block-start: var(--sp-2);
    font-size: var(--t-3xl);
    line-height: 1.05;
  }

  .access-console__head p:last-child {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-3);
    color: var(--plate-ink-2);
  }
}

@layer components {
  .access-sheet {
    min-block-size: 28rem;
  }

  .access-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--sp-4);
    align-items: end;
    margin-block-start: var(--sp-6);
    padding-block-start: var(--sp-5);
    border-block-start: 1px solid var(--plate-rule);
  }

  .access-form select,
  .issue-row input,
  .issue-row select {
    min-block-size: 56px;
    inline-size: 100%;
    padding: var(--sp-3);
    border: 1px solid var(--plate-ink);
    background: var(--plate-200);
    color: var(--plate-ink);
    font: inherit;
  }

  .access-status:empty {
    display: none;
  }

  .access-status:not(:empty) {
    margin-block-start: var(--sp-4);
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--teal-plate);
    background: var(--plate-200);
    color: var(--plate-ink);
    font-weight: 600;
  }

  .access-count {
    min-inline-size: 7rem;
    font-family: var(--f-num);
    font-size: var(--t-xl);
    font-variant-numeric: tabular-nums;
    text-align: end;
  }

  .issue-list,
  .session-list,
  .email-change-steps {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .issue-row {
    display: grid;
    grid-template-columns: minmax(12rem, 1.2fr) minmax(9rem, 0.8fr) minmax(14rem, 1fr) minmax(12rem, auto);
    gap: var(--sp-4);
    align-items: center;
    padding: var(--sp-4) var(--sp-5);
    border-block-start: 1px solid var(--edge-600);
    background: var(--field-800);
  }

  .issue-row__identity,
  .issue-row__action form {
    display: grid;
    gap: var(--sp-2);
  }

  .issue-row__identity strong {
    overflow-wrap: anywhere;
  }

  .issue-row__identity span,
  .access-handoff {
    color: var(--on-700);
    font-size: var(--t-sm);
  }

  .issue-label {
    color: var(--on-550);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .issue-row__action .auth-primary {
    inline-size: 100%;
  }

  .access-empty {
    padding: var(--sp-7) var(--sp-5);
    border-block-start: 1px solid var(--edge-600);
    background: var(--field-800);
  }

  .access-empty p {
    max-inline-size: 62ch;
    margin-block-start: var(--sp-2);
    color: var(--on-700);
  }

  .access-sheet .access-empty {
    margin-block-start: var(--sp-6);
    border: 1px solid var(--plate-rule);
    background: var(--plate-200);
  }

  .access-sheet .access-empty p {
    color: var(--plate-ink-2);
  }

  .session-list {
    margin-block-start: var(--sp-6);
    border-block: 1px solid var(--plate-rule);
  }

  .session-list li {
    display: flex;
    gap: var(--sp-4);
    align-items: center;
    justify-content: space-between;
    min-block-size: 72px;
    padding: var(--sp-3) var(--sp-4);
    border-block-start: 1px solid var(--plate-rule);
  }

  .session-list li:first-child {
    border-block-start: 0;
  }

  .session-list li > div {
    display: grid;
    gap: var(--sp-1);
  }

  .session-list code {
    color: var(--plate-ink-2);
    font-family: var(--f-num);
    font-size: var(--t-xs);
    overflow-wrap: anywhere;
  }

  .email-change-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-block-start: var(--sp-6);
    border-block: 1px solid var(--plate-rule);
    counter-reset: email-step;
  }

  .email-change-steps li {
    min-block-size: 72px;
    padding: var(--sp-3) var(--sp-4);
    border-inline-start: 1px solid var(--plate-rule);
    color: var(--plate-ink-2);
    counter-increment: email-step;
  }

  .email-change-steps li:first-child {
    border-inline-start: 0;
  }

  .email-change-steps li::before {
    display: block;
    content: counter(email-step, decimal-leading-zero);
    margin-block-end: var(--sp-1);
    font-family: var(--f-num);
    font-size: var(--t-xs);
  }

  .email-change-steps li[aria-current="step"] {
    background: var(--plate-ink);
    color: var(--plate-100);
  }

  .recovery-secret {
    margin-block-start: var(--sp-6);
    padding: var(--sp-5);
    border: 1px solid var(--plate-ink);
    background: var(--plate-ink);
    color: var(--plate-100);
  }

  .recovery-secret h3 {
    font-family: var(--f-lbl);
    font-size: var(--t-sm);
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .recovery-secret__code {
    display: block;
    margin-block: var(--sp-4);
    font-family: var(--f-num);
    font-size: clamp(var(--t-xl), 7vw, var(--t-3xl));
    font-weight: 700;
    letter-spacing: 0.08em;
    overflow-wrap: anywhere;
  }

  .recovery-secret .auth-hint,
  .recovery-secret .access-status {
    color: var(--plate-rule);
  }

  .recovery-secret .auth-secondary {
    color: var(--plate-100);
    text-decoration-color: var(--plate-rule);
  }

  .recovery-secret :focus-visible {
    outline-color: var(--brass-500);
  }
}

@layer states {
  @media (max-width: 1000px) {
    .issue-row {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
  }

  @media (max-width: 800px) {
    .access-frame {
      padding: var(--sp-4) 0 var(--sp-7);
    }

    .access-console__head,
    .access-form,
    .issue-row,
    .email-change-steps {
      grid-template-columns: minmax(0, 1fr);
    }

    .access-console__head,
    .issue-row,
    .access-empty {
      padding-inline: var(--sp-4);
    }

    .access-count {
      text-align: start;
    }

    .issue-row__action .auth-primary,
    .access-form .auth-primary {
      inline-size: 100%;
    }

    .email-change-steps li,
    .email-change-steps li:first-child {
      border-inline-start: 0;
      border-block-start: 1px solid var(--plate-rule);
    }

    .email-change-steps li:first-child {
      border-block-start: 0;
    }
  }

  @media (forced-colors: active) {
    .access-console__head,
    .issue-row,
    .access-empty,
    .access-status:not(:empty) {
      border-color: CanvasText;
      background: Canvas;
      color: CanvasText;
    }

    .email-change-steps li[aria-current="step"] {
      forced-color-adjust: none;
      border-color: Highlight;
      background: Highlight;
      color: HighlightText;
    }

    .recovery-secret {
      forced-color-adjust: none;
      border: 2px solid CanvasText;
      background: Canvas;
      color: CanvasText;
    }

    .recovery-secret .auth-hint,
    .recovery-secret .access-status,
    .recovery-secret .auth-secondary {
      color: CanvasText;
      text-decoration-color: CanvasText;
    }

    .recovery-secret :focus-visible {
      outline-color: Highlight;
    }
  }

  @media print {
    .access-console__head,
    .issue-row,
    .access-empty,
    .access-status:not(:empty),
    .email-change-steps,
    .email-change-steps li,
    .recovery-secret {
      border-color: #000;
      background: #fff !important;
      color: #000 !important;
      box-shadow: none;
    }

    .email-change-steps li[aria-current="step"] {
      border: 2px solid #000;
      background: #fff !important;
      color: #000 !important;
      font-weight: 700;
    }

    .recovery-secret .auth-hint,
    .recovery-secret .access-status,
    .recovery-secret__code {
      color: #000 !important;
    }

    .recovery-secret .auth-actions,
    .recovery-secret + .auth-foot,
    .recovery-secret [data-secret-status] {
      display: none;
    }
  }
}

@layer reset, tokens, base, layout, components, states;

/* Phase 1 authentication: the owner-approved open rail and reading sheet. */
@layer layout {
  .auth-rail {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--sp-5);
    max-inline-size: 1440px;
    margin-inline: auto;
    padding: var(--sp-3) var(--sp-5);
    border-block-end: 1px solid var(--edge-600);
  }

  .auth-gateway {
    max-inline-size: 800px;
    margin-inline: auto;
    padding: var(--sp-7) var(--sp-5);
  }

  .auth-sheet {
    padding: var(--sp-6) var(--sp-7) var(--sp-7);
  }
}

@layer components {
  .auth-rail__mark {
    border: 1px solid var(--edge-500);
    padding: var(--sp-1) var(--sp-2);
    font-family: var(--f-lbl);
    font-size: var(--t-md);
    font-weight: 700;
    letter-spacing: 0.08em;
  }

  .auth-rail__cycle {
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
    font-weight: 600;
    letter-spacing: 0.02em;
    overflow-wrap: anywhere;
  }

  .auth-sheet {
    background: var(--plate-100);
    color: var(--plate-ink);
  }

  .auth-sheet :focus-visible {
    outline-color: var(--focus-plate);
  }

  .auth-position {
    color: var(--plate-ink-2);
    font-family: var(--f-num);
    font-size: var(--t-xs);
  }

  .auth-route h3,
  .auth-code h3,
  .auth-help h3,
  .auth-confirm h3 {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .auth-sheet > h2 {
    max-inline-size: 17ch;
    margin-block-start: var(--sp-2);
    font-family: var(--f-ui);
    font-size: clamp(var(--t-2xl), 7vw, var(--t-3xl));
    line-height: 1.04;
    letter-spacing: -0.025em;
    text-wrap: balance;
  }

  .auth-lede {
    max-inline-size: 58ch;
    margin-block-start: var(--sp-4);
    color: var(--plate-ink-2);
    font-size: var(--t-md);
    text-wrap: pretty;
  }

  .auth-route,
  .auth-code {
    margin-block-start: var(--sp-6);
    padding-block-start: var(--sp-5);
    border-block-start: 1px solid var(--plate-rule);
  }

  .auth-route > p,
  .auth-code > p {
    max-inline-size: 58ch;
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .auth-row,
  .auth-code__row {
    display: flex;
    align-items: start;
    gap: var(--sp-3);
    margin-block-start: var(--sp-4);
  }

  .auth-field {
    display: grid;
    flex: 1;
    gap: var(--sp-2);
    min-inline-size: 0;
  }

  .auth-field label {
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .auth-field input {
    appearance: none;
    min-block-size: 56px;
    min-inline-size: 0;
    padding: var(--sp-3);
    border: 1px solid var(--plate-ink);
    background: var(--plate-200);
    color: var(--plate-ink);
    font: inherit;
  }

  .auth-field input::placeholder {
    color: var(--plate-ink-2);
    opacity: 1;
  }

  .auth-code__row input {
    max-inline-size: 13ch;
    font-family: var(--f-num);
    font-size: var(--t-xl);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-align: center;
  }

  .auth-hint,
  .auth-field .errorlist {
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .auth-field .errorlist {
    padding-inline-start: var(--sp-4);
    border-inline-start: 2px solid var(--plate-ink);
    color: var(--plate-ink);
    font-weight: 700;
  }

  .auth-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: 56px;
    padding: var(--sp-4) var(--sp-7);
    border: 1px solid var(--plate-ink);
    font-family: var(--f-lbl);
    font-weight: 700;
    text-decoration: none;
    border-color: var(--brass-600);
    background: var(--brass-600);
    color: var(--on-brass);
    font-size: var(--t-md);
    transition: background 140ms ease-out;
  }

  .auth-primary:hover {
    background: var(--brass-500);
  }

  .auth-secondary {
    appearance: none;
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--plate-ink);
    font-family: var(--f-lbl);
    font-weight: 700;
    text-decoration-line: underline;
    text-decoration-color: var(--edge-500);
    text-underline-offset: 4px;
    cursor: pointer;
  }

  .auth-secondary:hover {
    color: var(--brass-500);
    text-decoration-color: var(--brass-500);
  }

  .auth-row > .auth-primary,
  .auth-code__row > .auth-primary {
    margin-block-start: calc(1.55em + var(--sp-2));
  }

  .auth-neutral,
  .auth-confirm {
    max-inline-size: 64ch;
    margin-block-start: var(--sp-5);
    padding: var(--sp-4) var(--sp-5);
    border: 1px solid var(--plate-rule);
    background: var(--plate-200);
  }

  .auth-neutral p + p,
  .auth-confirm h3:not(:first-child),
  .auth-confirm > p + p {
    margin-block-start: var(--sp-3);
  }

  .auth-confirm__cycle {
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
    font-size: var(--t-md);
  }

  .auth-confirm__address {
    margin-block-start: var(--sp-2);
    font-family: var(--f-num);
    font-size: var(--t-lg);
    font-weight: 700;
    overflow-wrap: anywhere;
  }

  .auth-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--sp-3);
    margin-block-start: var(--sp-5);
  }

  .auth-help {
    max-inline-size: 64ch;
    margin-block-start: var(--sp-6);
    padding: var(--sp-4) var(--sp-5);
    border: 1px dashed var(--plate-rule);
  }

  .auth-help p,
  .auth-help ol {
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .auth-help ol {
    display: grid;
    gap: var(--sp-2);
    padding-inline-start: var(--sp-5);
  }

  .auth-help a,
  .auth-foot > a:not(.auth-primary) {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    color: var(--plate-ink);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .auth-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-3) var(--sp-5);
    margin-block-start: var(--sp-6);
    padding-block-start: var(--sp-4);
    border-block-start: 1px solid var(--plate-rule);
  }

  .auth-foot p {
    flex: 1 1 24rem;
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }
}

@layer states {
  @media (max-width: 800px) {
    .auth-rail {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--sp-2);
      padding-inline: var(--sp-4);
    }

    .auth-rail__mark {
      justify-self: start;
    }

    .auth-rail .theme-control {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
    }

    .auth-gateway {
      padding: var(--sp-5) 0 var(--sp-7);
    }

    .auth-sheet {
      padding: var(--sp-5) var(--sp-4) var(--sp-6);
    }

    .auth-row,
    .auth-code__row,
    .auth-actions {
      align-items: stretch;
      flex-direction: column;
    }

    .auth-primary,
    .auth-secondary,
    .auth-row input,
    .auth-code__row input {
      inline-size: 100%;
      max-inline-size: none;
    }

    .auth-row > .auth-primary,
    .auth-code__row > .auth-primary {
      margin-block-start: 0;
    }
  }

  @media (forced-colors: active) {
    .auth-sheet,
    .auth-neutral,
    .auth-confirm,
    .auth-help,
    .auth-field input {
      border-color: CanvasText;
      background: Canvas;
      color: CanvasText;
      box-shadow: none;
    }

    .auth-primary {
      border-color: ButtonBorder;
      background: ButtonFace;
      color: ButtonText;
      box-shadow: none;
    }
  }

  @media print {
    .auth-rail,
    .auth-actions,
    .auth-primary,
    .auth-code,
    .auth-row {
      display: none;
    }

    .auth-sheet {
      border-color: #000;
      background: #fff !important;
      color: #000 !important;
      box-shadow: none;
    }

    .auth-neutral,
    .auth-confirm,
    .auth-help,
    .auth-field input {
      border-color: #000;
      background: #fff !important;
      color: #000 !important;
    }
  }
}

@font-face {
  font-family: "Barlow";
  src: url("../fonts/Barlow-Bold.6cbe034ff9c2.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Barlow Semi Condensed";
  src: url("../fonts/BarlowSemiCondensed-Medium.6403d5064aab.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Barlow Semi Condensed";
  src: url("../fonts/BarlowSemiCondensed-SemiBold.ed76190ca05e.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Barlow Semi Condensed";
  src: url("../fonts/BarlowSemiCondensed-Bold.58f00093d5a1.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("../fonts/JetBrainsMono-wght.4d05bb0e4a69.ttf") format("truetype");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html {
    -webkit-text-size-adjust: 100%;
  }

  body,
  h1,
  h2,
  p,
  dl,
  dd,
  ul {
    margin: 0;
  }

  ul {
    padding: 0;
    list-style: none;
  }

  a {
    color: inherit;
  }

  button {
    color: inherit;
    font: inherit;
  }
}

@layer tokens {
  :root {
    color-scheme: light dark;
    --field-900: light-dark(oklch(91.5% 0.012 245), oklch(19.5% 0.034 252));
    --field-800: light-dark(oklch(96.4% 0.007 245), oklch(23.5% 0.038 252));
    --field-700: light-dark(oklch(88.5% 0.015 245), oklch(27.5% 0.040 252));
    --edge-600: light-dark(oklch(78% 0.016 245), oklch(34% 0.038 252));
    --edge-500: light-dark(oklch(64% 0.020 248), oklch(43% 0.036 250));
    --on-900: light-dark(oklch(24% 0.022 252), oklch(83% 0.014 250));
    --on-700: light-dark(oklch(41% 0.020 252), oklch(74% 0.016 250));
    --on-550: light-dark(oklch(49% 0.018 252), oklch(64% 0.018 250));
    --plate-100: light-dark(oklch(97.8% 0.017 86), oklch(96% 0.013 86));
    --plate-200: light-dark(oklch(94.6% 0.020 86), oklch(92.5% 0.017 86));
    --plate-rule: light-dark(oklch(83% 0.022 86), oklch(85% 0.020 86));
    --plate-ink: light-dark(oklch(21% 0.022 252), oklch(22% 0.022 252));
    --plate-ink-2: light-dark(oklch(40% 0.020 252), oklch(40% 0.020 252));
    --teal-400: light-dark(oklch(46% 0.088 200), oklch(72% 0.086 197));
    --teal-600: light-dark(oklch(44% 0.085 201), oklch(52% 0.080 200));
    --brass-500: light-dark(oklch(47% 0.098 74), oklch(74% 0.108 80));
    --brass-600: light-dark(oklch(52% 0.100 75), oklch(60% 0.108 76));
    --amber-400: light-dark(oklch(50% 0.115 68), oklch(78% 0.125 72));
    --alert-400: light-dark(oklch(49% 0.170 28), oklch(66% 0.155 30));
    --on-brass: light-dark(oklch(99% 0.010 86), oklch(16% 0.030 76));
    --on-teal: light-dark(oklch(99% 0.005 200), oklch(15% 0.030 250));
    --focus-plate: oklch(42% 0.140 250);
    --teal-plate: oklch(40% 0.082 201);
    --brass-plate: oklch(42% 0.098 74);
    --amber-plate: oklch(46% 0.115 68);
    --alert-plate: oklch(45% 0.170 28);
    --on-teal-plate: oklch(99% 0.005 200);
    --on-brass-plate: oklch(99% 0.010 86);
    --on-alert-plate: oklch(99% 0.010 28);
    /* NOT light-dark(): that is only valid where a <color> is expected, and a
       box-shadow value is a shadow list. Written as a pair the declaration is
       invalid and the browser drops it, taking the inset hairline with it. */
    --plate-lift: 0 10px 28px -18px oklch(30% 0.04 250 / 0.45);
    --f-ui: "Barlow", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial,
      sans-serif;
    --f-lbl: "Barlow Semi Condensed", "Barlow", ui-sans-serif, system-ui, sans-serif;
    --f-num: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    --t-2xs: 0.6875rem;
    --t-xs: 0.75rem;
    --t-sm: 0.8125rem;
    --t-base: 0.9375rem;
    --t-md: 1.0625rem;
    --t-lg: 1.1875rem;
    --t-xl: 1.5rem;
    --t-2xl: 2rem;
    --t-3xl: 2.75rem;
    --sp-1: 0.25rem;
    --sp-2: 0.5rem;
    --sp-3: 0.75rem;
    --sp-4: 1rem;
    --sp-5: 1.5rem;
    --sp-6: 2rem;
    --sp-7: 2.75rem;
    --tap: 44px;
  }

  :root[data-theme="light"] {
    color-scheme: light;
  }

  :root[data-theme="dark"] {
    color-scheme: dark;
  }

  /* Forcing color-scheme re-resolves every light-dark() token, but --plate-lift
     cannot be one, so the only shadow in the system is authored per mode here. */
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --plate-lift: 0 0 44px -18px oklch(96% 0.013 86 / 0.35);
    }
  }

  :root[data-theme="dark"] {
    --plate-lift: 0 0 44px -18px oklch(96% 0.013 86 / 0.35);
  }
}

@layer base {
  body {
    min-block-size: 100vh;
    background: var(--field-900);
    color: var(--on-900);
    font-family: var(--f-ui);
    font-size: var(--t-base);
    font-variant-numeric: tabular-nums;
    line-height: 1.55;
  }

  ::selection {
    background: var(--teal-600);
    color: var(--on-teal);
  }

  :focus-visible {
    outline: 3px solid var(--brass-500);
    outline-offset: 2px;
  }

  button {
    cursor: pointer;
  }

  * {
    scrollbar-color: var(--edge-500) var(--field-900);
  }

  .skip-link {
    position: absolute;
    z-index: 40;
    inset-block-start: -5rem;
    inset-inline-start: var(--sp-4);
    border: 2px solid var(--brass-500);
    background: var(--plate-100);
    color: var(--plate-ink);
    font-weight: 700;
    padding: var(--sp-3) var(--sp-4);
    transition: inset-block-start 120ms ease-out;
  }

  .skip-link:focus {
    inset-block-start: var(--sp-4);
  }
}

@layer layout {
  .foundation-shell {
    max-inline-size: 1440px;
    margin-inline: auto;
  }

  .foundation-rail {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--sp-4);
    padding: var(--sp-3) var(--sp-5);
  }

  .foundation-readings {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    border-block: 1px solid var(--edge-600);
    background: var(--edge-600);
  }

  .foundation-main {
    display: grid;
    grid-template-columns: 268px minmax(0, 1fr);
    align-items: stretch;
    gap: 1px;
    background: var(--edge-600);
  }
}

@layer components {
  .foundation-brand {
    border: 1px solid var(--brass-600);
    color: var(--brass-500);
    font-family: var(--f-lbl);
    font-size: var(--t-md);
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: var(--sp-1) var(--sp-2);
    text-decoration: none;
  }

  .foundation-context {
    color: var(--on-700);
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
    font-weight: 600;
    letter-spacing: 0.02em;
    overflow-wrap: anywhere;
  }

  .theme-control {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
  }

  .theme-control__label {
    color: var(--on-550);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  .theme-control__options {
    display: flex;
    border: 1px solid var(--edge-500);
  }

  .theme-control__options button {
    min-inline-size: 48px;
    min-block-size: 30px;
    border: 0;
    border-inline-start: 1px solid var(--edge-500);
    background: transparent;
    color: var(--on-700);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    letter-spacing: 0.04em;
    padding-inline: var(--sp-3);
  }

  .theme-control__options button:first-child {
    border-inline-start: 0;
  }

  .theme-control__options button:hover {
    background: var(--field-800);
    color: var(--on-900);
  }

  .theme-control__options button[aria-checked="true"] {
    background: var(--brass-600);
    color: var(--on-brass);
    font-weight: 700;
  }

  .foundation-reading {
    min-inline-size: 0;
    background: var(--field-800);
    padding: var(--sp-4) var(--sp-5) var(--sp-5);
  }

  .foundation-reading__label,
  .foundation-index h2,
  .reading-surface dt {
    color: var(--on-550);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }

  .foundation-reading__value {
    margin-block: var(--sp-2) var(--sp-3);
    color: var(--on-900);
    font-family: var(--f-lbl);
    font-size: var(--t-2xl);
    font-weight: 600;
    letter-spacing: 0.005em;
    line-height: 1.05;
  }

  .foundation-reading__value--ready {
    color: var(--teal-400);
  }

  .foundation-reading__detail {
    color: var(--on-700);
    font-size: var(--t-sm);
    overflow-wrap: anywhere;
    text-wrap: pretty;
  }

  .foundation-index {
    min-inline-size: 0;
    background: var(--field-800);
    padding: var(--sp-5) var(--sp-4);
  }

  .foundation-index h2 {
    border-block-end: 1px solid var(--edge-600);
    padding-block-end: var(--sp-2);
  }

  .foundation-index ul {
    margin-block-start: var(--sp-3);
  }

  .foundation-index li {
    display: grid;
    grid-template-columns: 14px minmax(0, 1fr);
    align-items: center;
    gap: var(--sp-3);
    min-block-size: var(--tap);
    border-block-end: 1px solid var(--field-700);
    color: var(--on-700);
    font-size: var(--t-sm);
    overflow-wrap: anywhere;
  }

  .foundation-index li span {
    inline-size: 14px;
    block-size: 14px;
    border: 2px solid var(--teal-400);
    background: var(--teal-400);
  }

  .foundation-index > p {
    margin-block-start: var(--sp-4);
    color: var(--on-550);
    font-size: var(--t-sm);
    text-wrap: pretty;
  }

  .reading-surface {
    min-inline-size: 0;
    background: var(--plate-100);
    color: var(--plate-ink);
    padding: var(--sp-7);
  }

  .reading-surface,
  .auth-sheet {
    box-shadow: inset 0 0 0 1px var(--plate-rule), var(--plate-lift);
  }

  .reading-surface :focus-visible {
    outline-color: var(--focus-plate);
  }

  .reading-surface__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--sp-4);
  }

  .reading-surface h1 {
    max-inline-size: 14ch;
    font-size: var(--t-3xl);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.04;
    text-wrap: balance;
  }

  .reading-surface__phase {
    flex: none;
    border: 1px solid var(--brass-plate);
    border-color: var(--brass-plate);
    color: var(--brass-plate);
    font-family: var(--f-num);
    font-size: var(--t-xs);
    font-weight: 600;
    padding: var(--sp-1) var(--sp-2);
  }

  .reading-surface__status {
    margin-block-start: var(--sp-4);
    color: var(--teal-plate);
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
    font-weight: 600;
    letter-spacing: 0.02em;
  }

  .reading-surface__lede {
    max-inline-size: 52ch;
    margin-block-start: var(--sp-5);
    color: var(--plate-ink-2);
    font-size: var(--t-xl);
    line-height: 1.38;
    overflow-wrap: anywhere;
    text-wrap: pretty;
  }

  .reading-surface__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-block-start: var(--sp-7);
    border-block: 1px solid var(--plate-rule);
    background: var(--plate-rule);
  }

  .reading-surface__facts div {
    min-inline-size: 0;
    background: var(--plate-200);
    padding: var(--sp-4);
  }

  .reading-surface dt {
    color: var(--plate-ink-2);
  }

  .reading-surface dd {
    margin-block-start: var(--sp-2);
    color: var(--plate-ink);
    overflow-wrap: anywhere;
  }

  .foundation-footer {
    border-block-start: 1px solid var(--edge-600);
    color: var(--on-550);
    font-family: var(--f-num);
    font-size: var(--t-xs);
    padding: var(--sp-4) var(--sp-5);
  }
}

@layer states {
  @media (min-width: 1241px) {
    .foundation-main {
      min-block-size: 31rem;
    }
  }

  @media (max-width: 1240px) {
    .foundation-main {
      grid-template-columns: 232px minmax(0, 1fr);
    }
  }

  @media (max-width: 1120px) {
    .foundation-rail {
      grid-template-columns: auto minmax(0, 1fr);
    }

    .display-navigation {
      grid-column: 1 / -1;
      justify-self: end;
    }
  }

  @media (max-width: 800px) {
    .foundation-rail {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--sp-2);
      padding: var(--sp-3) var(--sp-4);
    }

    .foundation-brand {
      justify-self: start;
    }

    .display-navigation {
      grid-column: auto;
      justify-self: stretch;
    }

    .theme-control {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
    }

    .theme-control__options button {
      flex: 1;
      min-inline-size: 0;
      min-block-size: 36px;
    }

    .foundation-readings,
    .foundation-main,
    .reading-surface__facts {
      grid-template-columns: minmax(0, 1fr);
    }

    .foundation-reading {
      display: grid;
      grid-template-columns: 5.5rem minmax(0, 1fr);
      align-items: baseline;
      gap: var(--sp-2) var(--sp-4);
      padding: var(--sp-3) var(--sp-4);
    }

    .foundation-reading__value {
      margin: 0;
      font-size: var(--t-lg);
    }

    .foundation-reading__detail {
      grid-column: 1 / -1;
    }

    .reading-surface {
      order: -1;
      padding: var(--sp-5) var(--sp-4) var(--sp-6);
    }

    .reading-surface h1 {
      font-size: var(--t-2xl);
    }

    .reading-surface__lede {
      font-size: var(--t-lg);
    }

    .foundation-index {
      padding: var(--sp-5) var(--sp-4);
    }

    .foundation-footer {
      padding-inline: var(--sp-4);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      transition-duration: 0.001ms !important;
      animation-duration: 0.001ms !important;
    }
  }

  @media (prefers-contrast: more) {
    :root {
      --on-700: var(--on-900);
      --on-550: light-dark(oklch(36% 0.020 252), oklch(76% 0.018 250));
      --edge-600: var(--edge-500);
    }
  }

  @media (forced-colors: active) {
    .foundation-index li span {
      forced-color-adjust: none;
      border-color: CanvasText;
      background: CanvasText;
    }

    .theme-control__options button[aria-checked="true"] {
      forced-color-adjust: none;
      border: 1px solid ButtonBorder;
      background: ButtonFace;
      color: ButtonText;
    }

    :focus-visible {
      outline-color: Highlight;
    }

    .reading-surface {
      border: 1px solid CanvasText;
      box-shadow: none;
    }
  }

  @media print {
    :root {
      color-scheme: light;
    }

    body {
      background: #fff !important;
      color: #000 !important;
    }

    .foundation-rail,
    .foundation-index,
    .foundation-footer,
    .display-navigation {
      display: none;
    }

    .foundation-readings,
    .foundation-main {
      grid-template-columns: minmax(0, 1fr);
      background: none;
    }

    .foundation-reading,
    .reading-surface {
      break-inside: avoid;
      border: 1px solid #000;
      background: #fff !important;
      color: #000 !important;
      box-shadow: none;
    }
  }
}

/* Phase 2 review and result: source evidence before summary, release as a separate gate. */
@layer layout {
  .report-shell {
    max-inline-size: 1440px;
    margin-inline: auto;
  }

  .report-deck {
    display: grid;
    grid-template-columns: minmax(15rem, 0.75fr) minmax(0, 2.25fr);
    gap: 1px;
    align-items: start;
    background: var(--edge-600);
  }
}

@layer components {
  .report-index {
    position: sticky;
    inset-block-start: 0;
    min-block-size: 34rem;
    padding: var(--sp-5);
    background: var(--field-800);
  }

  .report-index h2 {
    color: var(--on-550);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .report-index dl {
    display: grid;
    margin-block-start: var(--sp-5);
  }

  .report-index dl div {
    padding-block: var(--sp-3);
    border-block-start: 1px solid var(--edge-600);
  }

  .report-index dt {
    color: var(--on-550);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
  }

  .report-index dd,
  .report-index > p {
    margin-block-start: var(--sp-1);
    color: var(--on-700);
    font-size: var(--t-sm);
    overflow-wrap: anywhere;
  }

  .report-index > p {
    margin-block-start: var(--sp-5);
  }

  .report-plate {
    min-inline-size: 0;
    min-block-size: 48rem;
    padding: var(--sp-6) var(--sp-7) var(--sp-7);
    background: var(--plate-100);
    color: var(--plate-ink);
    box-shadow: inset 0 0 0 1px var(--plate-rule), var(--plate-lift);
  }

  .report-plate :focus-visible {
    outline-color: var(--focus-plate);
  }

  .report-head h1 {
    max-inline-size: 18ch;
    font-size: clamp(var(--t-2xl), 5vw, var(--t-3xl));
    line-height: 1.04;
    letter-spacing: -0.025em;
    text-wrap: balance;
  }

  .report-head p {
    max-inline-size: 65ch;
    margin-block-start: var(--sp-3);
    color: var(--plate-ink-2);
    font-size: var(--t-md);
  }

  .release-band {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2) var(--sp-5);
    margin-block-start: var(--sp-4);
    padding-block: var(--sp-3);
    border-block: 1px solid var(--plate-rule);
    font-size: var(--t-sm);
  }

  .release-band div {
    display: flex;
    gap: var(--sp-2);
    align-items: baseline;
    min-inline-size: 0;
  }

  .release-band dt {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  .release-band dd {
    min-inline-size: 0;
    margin: 0;
    color: var(--plate-ink);
    font-family: var(--f-num);
    font-size: var(--t-xs);
    overflow-wrap: anywhere;
  }

  .summary-byline {
    margin-block-start: var(--sp-5);
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .report-status {
    margin-block-start: var(--sp-5);
    padding: var(--sp-3) var(--sp-4);
    border-block: 1px solid var(--teal-plate);
    font-weight: 700;
  }

  .evidence-stack {
    display: grid;
    margin-block-start: var(--sp-6);
    border-block-start: 1px solid var(--plate-rule);
  }

  .evidence-item {
    padding-block: var(--sp-6);
    border-block-end: 1px solid var(--plate-rule);
  }

  .evidence-item h2,
  .release-gate h2 {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .evidence-item blockquote {
    max-inline-size: 68ch;
    margin: var(--sp-3) 0 0;
    padding: 0;
    border: 0;
    font-size: var(--t-lg);
    line-height: 1.55;
  }

  .evidence-item details {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-4);
    color: var(--plate-ink-2);
  }

  .evidence-item summary {
    min-block-size: var(--tap);
    padding-block: var(--sp-2);
    color: var(--plate-ink);
    font-family: var(--f-lbl);
    font-weight: 700;
    cursor: pointer;
  }

  .evidence-item details > p,
  .evidence-item details > ul {
    margin-block-start: var(--sp-2);
  }

  .evidence-disposition,
  .evidence-note,
  .evidence-source {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-3);
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .evidence-links {
    margin-block-start: var(--sp-4);
  }

  .evidence-links a {
    display: inline-flex;
    gap: var(--sp-2);
    align-items: center;
    min-block-size: var(--tap);
    color: var(--plate-ink);
    font-family: var(--f-num);
    font-size: var(--t-sm);
    font-weight: 700;
  }

  .evidence-links a::before {
    inline-size: 0.65rem;
    block-size: 0.65rem;
    border: 1px solid var(--teal-plate);
    content: "";
  }

  .evidence-disposition {
    padding: var(--sp-3);
    border-block: 1px solid var(--plate-ink-2);
    font-weight: 700;
  }

  .section-disposition {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-4);
    padding-block-start: var(--sp-4);
    border-block-start: 1px solid var(--plate-rule);
  }

  .section-disposition__state {
    display: inline-flex;
    align-items: center;
    min-block-size: 1.75rem;
    padding-inline: var(--sp-2);
    border: 1px solid var(--amber-plate);
    color: var(--plate-ink);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .section-disposition__state[data-disposition-state="edited"],
  .section-disposition__state[data-disposition-state="kept"] {
    border-color: var(--teal-plate);
  }

  .section-disposition__controls {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    align-items: start;
    margin-block-start: var(--sp-3);
  }

  .section-edit-control,
  .section-keep-form {
    flex: 1 1 12rem;
    min-inline-size: 0;
  }

  .section-edit-control[open] {
    flex-basis: 100%;
  }

  .section-edit-control > summary.answer-save,
  .section-keep-form .answer-save {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 100%;
    margin-block-start: 0;
    cursor: pointer;
    list-style: none;
  }

  .section-edit-control > summary.answer-save::-webkit-details-marker {
    display: none;
  }

  .section-edit-control[open] > summary.answer-save,
  .section-disposition__button[aria-pressed="true"] {
    background: var(--plate-ink);
    color: var(--plate-100);
  }

  .section-disposition__button:disabled,
  .section-disposition__button:disabled:hover {
    cursor: not-allowed;
  }

  .section-disposition__button:disabled:not([aria-pressed="true"]) {
    border-color: var(--plate-rule);
    background: var(--plate-200);
    color: var(--plate-ink-2);
  }

  .review-form {
    display: grid;
    gap: var(--sp-3);
    margin-block-start: var(--sp-4);
    padding-block-start: var(--sp-4);
    border-block-start: 1px solid var(--plate-rule);
  }

  .review-form label {
    display: grid;
    gap: var(--sp-2);
    color: var(--plate-ink);
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .review-form input,
  .review-form textarea {
    inline-size: 100%;
    min-block-size: var(--tap);
    padding: var(--sp-3);
    border: 1px solid var(--plate-ink);
    background: var(--plate-200);
    color: var(--plate-ink);
    font: inherit;
  }

  .review-form textarea {
    min-block-size: 9rem;
    resize: vertical;
  }

  .review-form--compact {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }

  .release-gate {
    margin-block-start: var(--sp-7);
    padding: var(--sp-5);
    border: 1px solid var(--plate-ink);
  }

  .release-gate > p {
    max-inline-size: 65ch;
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
  }

  .release-gate > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    align-items: center;
    margin-block-start: var(--sp-5);
  }

  .result-foot {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-4);
    justify-content: space-between;
    align-items: center;
    margin-block-start: var(--sp-6);
  }

  .result-foot p {
    max-inline-size: 65ch;
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .release-selection,
  .export-actions,
  .export-ready {
    margin-block-start: var(--sp-7);
  }

  .release-list-head h2,
  .export-actions h2,
  .export-ready h2 {
    color: var(--plate-ink);
    font-size: var(--t-xl);
    line-height: 1.2;
  }

  .release-list-head p,
  .export-actions > p,
  .export-ready > p {
    max-inline-size: 65ch;
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
  }

  .release-list {
    margin-block-start: var(--sp-5);
    padding: 0;
    border-block-start: 1px solid var(--plate-rule);
    list-style: none;
  }

  .release-row {
    display: grid;
    grid-template-columns: minmax(11rem, 0.8fr) minmax(15rem, 1.2fr) auto;
    gap: var(--sp-4);
    align-items: start;
    padding-block: var(--sp-5);
    border-block-end: 1px solid var(--plate-rule);
  }

  .release-row__selection {
    min-inline-size: 0;
  }

  .release-row__selection,
  .release-row__selection label,
  .release-row__selection > div {
    display: flex;
    gap: var(--sp-3);
    align-items: center;
  }

  .release-row__selection label,
  .release-row__selection > div {
    min-inline-size: 0;
    flex: 1;
    justify-content: space-between;
  }

  .release-row__selection input {
    inline-size: 1.75rem;
    block-size: 1.75rem;
    flex: 0 0 auto;
    margin: 0;
    accent-color: var(--plate-ink);
  }

  .release-row__selection strong {
    overflow-wrap: anywhere;
  }

  .release-row__selection span {
    padding: var(--sp-1) var(--sp-2);
    border: 1px solid var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .release-row[data-release-state="ready"] .release-row__selection span,
  .release-row[data-release-state="released"] .release-row__selection span {
    border-color: var(--teal-plate);
  }

  .release-row[data-release-state="held"] .release-row__selection span,
  .release-row[data-release-state="approval_stale"] .release-row__selection span {
    border-color: var(--amber-plate);
  }

  .release-row__facts {
    display: grid;
    gap: var(--sp-2);
    min-inline-size: 0;
  }

  .release-row__facts div {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: var(--sp-2);
  }

  .release-row__facts dt {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
  }

  .release-row__facts dd {
    margin: 0;
    overflow-wrap: anywhere;
  }

  .release-row__reason {
    grid-column: 1 / -1;
    max-inline-size: 68ch;
    padding: var(--sp-3);
    border: 1px dashed var(--plate-ink-2);
    color: var(--plate-ink-2);
  }

  .release-row__actions {
    display: flex;
    min-inline-size: 0;
    flex-direction: column;
    gap: var(--sp-2);
    align-items: stretch;
  }

  .release-row__actions .answer-save,
  .export-actions .answer-save,
  .export-ready .answer-save {
    margin-block-start: 0;
  }

  .release-row__actions details {
    inline-size: 100%;
    min-inline-size: 0;
  }

  .release-row__actions summary {
    cursor: pointer;
    list-style: none;
  }

  .release-row__actions summary::-webkit-details-marker {
    display: none;
  }

  .recall-form,
  .attributed-export-form {
    display: grid;
    gap: var(--sp-2);
    margin-block-start: var(--sp-3);
    padding: var(--sp-4);
    border: 1px solid var(--plate-ink-2);
  }

  .recall-form label,
  .attributed-export-form label {
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .recall-form input,
  .attributed-export-form input {
    inline-size: 100%;
    min-block-size: var(--tap);
    padding: var(--sp-3);
    border: 1px solid var(--plate-ink);
    background: var(--plate-200);
    color: var(--plate-ink);
    font: inherit;
  }

  .recall-form p {
    max-inline-size: 52ch;
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .release-gate > form {
    margin-block-start: var(--sp-5);
  }

  .export-actions,
  .export-ready {
    padding-block-start: var(--sp-6);
    border-block-start: 1px solid var(--plate-rule);
  }

  .export-actions > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-4);
    align-items: start;
    margin-block-start: var(--sp-4);
  }

  .export-ready form {
    margin-block-start: var(--sp-4);
  }
}

@layer states {
  @media (max-width: 1100px) {
    .report-deck {
      grid-template-columns: minmax(0, 1fr);
    }

    .report-index {
      position: static;
      min-block-size: 0;
      padding: var(--sp-4);
    }

    .report-plate {
      padding: var(--sp-5) var(--sp-4) var(--sp-6);
    }

    .release-band {
      gap: var(--sp-2) var(--sp-4);
    }

    .review-form--compact {
      grid-template-columns: minmax(0, 1fr);
    }

    .section-disposition__controls {
      align-items: stretch;
    }

    .release-row {
      grid-template-columns: minmax(0, 1fr);
    }

    .release-row__actions,
    .export-actions > div {
      flex-direction: column;
      align-items: stretch;
    }

    .release-row__actions > *,
    .export-actions form,
    .export-actions button {
      inline-size: 100%;
    }

    .release-gate > div,
    .release-gate form,
    .release-gate button {
      inline-size: 100%;
    }
  }

  @media (forced-colors: active) {
    .report-index,
    .report-plate,
    .release-gate,
    .review-form input,
    .review-form textarea,
    .recall-form input,
    .attributed-export-form input {
      border-color: CanvasText;
      background: Canvas;
      color: CanvasText;
      box-shadow: none;
    }

    .section-edit-control[open] > summary.answer-save,
    .section-disposition__button[aria-pressed="true"] {
      forced-color-adjust: none;
      border-color: Highlight;
      background: Highlight;
      color: HighlightText;
    }
  }

  @media print {
    .report-shell .evaluation-rail,
    .report-index,
    .review-form,
    .section-disposition__controls,
    .release-gate,
    .release-row__actions,
    .export-actions,
    .export-ready,
    .result-foot button {
      display: none;
    }

    .report-deck {
      display: block;
      background: none;
    }

    .report-plate {
      padding: 0;
      background: #fff !important;
      color: #000 !important;
      box-shadow: none;
    }

    .release-band,
    .summary-byline {
      break-inside: avoid;
    }
  }
}

@layer layout {
  .template-admin-frame {
    max-inline-size: 1180px;
    margin-inline: auto;
    padding: var(--sp-7) var(--sp-5);
  }

  .template-admin-sheet--wide {
    max-inline-size: none;
  }

  .template-section-head,
  .template-create-form,
  .template-name-form,
  .template-publish {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: var(--sp-5);
  }

  .template-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--sp-4);
  }

  .template-form-grid--choices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .template-form-grid--rules {
    grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 2fr);
  }
}

@layer components {
  .template-admin-sheet {
    background: var(--plate-100);
    color: var(--plate-ink);
  }

  .template-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2);
    margin-block-end: var(--sp-5);
    font-size: var(--t-sm);
  }

  .template-breadcrumb a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    color: var(--teal-plate);
    font-weight: 700;
    text-underline-offset: 0.2em;
  }

  .template-breadcrumb span::before {
    content: "/";
    margin-inline-end: var(--sp-2);
    color: var(--plate-rule);
  }

  .template-admin-section {
    margin-block-start: var(--sp-7);
    padding-block-start: var(--sp-5);
    border-block-start: 1px solid var(--plate-rule);
  }

  .template-admin-section h3,
  .template-publish h3,
  .template-question-form legend {
    color: var(--plate-ink);
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
    font-weight: 700;
  }

  .template-section-head p,
  .template-section-copy,
  .template-publish p {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
  }

  .template-count {
    font-family: var(--f-num);
    font-size: var(--t-sm);
    font-variant-numeric: tabular-nums;
  }

  .template-draft-list,
  .template-question-list,
  .template-version-list {
    margin-block-start: var(--sp-4);
    padding: 0;
    border-block: 1px solid var(--plate-rule);
    list-style: none;
  }

  .template-draft-list li + li,
  .template-question-list li + li,
  .template-version-list li + li {
    border-block-start: 1px solid var(--plate-rule);
  }

  .template-draft-list a {
    display: grid;
    gap: var(--sp-1);
    min-block-size: 68px;
    padding: var(--sp-3) var(--sp-4);
    color: var(--plate-ink);
    text-decoration-color: var(--plate-rule);
    text-underline-offset: 0.2em;
  }

  .template-draft-list a:hover {
    background: var(--plate-200);
    text-decoration-color: var(--teal-plate);
  }

  .template-draft-list__name {
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
    font-weight: 700;
  }

  .template-draft-list a span:last-child {
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .template-empty {
    margin-block-start: var(--sp-4);
    padding: var(--sp-5);
    border: 1px dashed var(--plate-rule);
  }

  .template-empty p {
    max-inline-size: 62ch;
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
  }

  .template-create-form,
  .template-name-form {
    margin-block-start: var(--sp-4);
  }

  .template-field {
    display: grid;
    align-content: start;
    gap: var(--sp-2);
    min-inline-size: 0;
  }

  .template-field label {
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .template-field input:not([type="checkbox"]),
  .template-field select,
  .template-field textarea {
    inline-size: 100%;
    min-block-size: var(--tap);
    border: 1px solid var(--plate-rule);
    background: var(--plate-200);
    color: var(--plate-ink);
    font: inherit;
  }

  .template-field input:not([type="checkbox"]),
  .template-field select {
    padding: var(--sp-3);
  }

  .template-field textarea {
    padding: var(--sp-3);
    resize: vertical;
  }

  .template-field--check {
    align-self: end;
    min-block-size: 56px;
  }

  .template-field--check label {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    min-block-size: 56px;
  }

  .template-field--check input {
    inline-size: 28px;
    block-size: 28px;
    margin: 0;
    accent-color: var(--teal-plate);
  }

  .template-field .auth-hint {
    margin: 0;
  }

  .template-field .errorlist,
  .template-form-errors {
    margin: 0;
    padding-inline-start: var(--sp-4);
    border-inline-start: 1px solid var(--alert-plate);
    color: var(--alert-plate);
    font-size: var(--t-sm);
  }

  .template-field--error input,
  .template-field--error select,
  .template-field--error textarea {
    border-color: var(--alert-plate);
  }

  .template-status,
  .template-error {
    margin-block-start: var(--sp-5);
    padding: var(--sp-4);
    border: 1px solid var(--teal-plate);
    background: var(--plate-200);
  }

  .template-error {
    border-color: var(--alert-plate);
  }

  .template-error p {
    margin-block-start: var(--sp-2);
  }

  .template-question-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, auto);
    gap: var(--sp-5);
    padding: var(--sp-4);
  }

  .template-question-list__body {
    min-inline-size: 0;
  }

  .template-question-list__body h4 {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-2);
    overflow-wrap: anywhere;
    font-size: var(--t-md);
  }

  .template-question-list__meta,
  .template-question-list__key {
    color: var(--plate-ink-2);
    font-size: var(--t-xs);
  }

  .template-question-list__key {
    display: block;
    margin-block-start: var(--sp-2);
    font-family: var(--f-num);
    overflow-wrap: anywhere;
  }

  .template-question-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: var(--sp-2);
  }

  .template-question-actions form,
  .template-question-actions button,
  .template-question-actions a {
    inline-size: 100%;
  }

  .template-question-actions .auth-secondary {
    justify-content: center;
    min-block-size: var(--tap);
    padding-inline: var(--sp-3);
  }

  .template-remove {
    color: var(--alert-plate);
    text-decoration-color: var(--alert-plate);
  }

  .template-question-form fieldset {
    display: grid;
    gap: var(--sp-5);
    min-inline-size: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .template-question-form legend {
    margin-block-end: var(--sp-5);
    padding: 0;
  }

  .template-editor-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--sp-3);
    margin-block-start: var(--sp-5);
  }

  .template-editor-actions .auth-secondary {
    min-block-size: var(--tap);
    padding-inline: var(--sp-4);
  }

  .template-publish {
    margin-block-start: var(--sp-7);
    padding: var(--sp-5);
    border: 1px solid var(--brass-plate);
    background: var(--plate-200);
  }

  .template-version-list li {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
  }

  .template-version-list span {
    font-weight: 700;
  }

  .template-version-list time {
    color: var(--plate-ink-2);
    font-family: var(--f-num);
    font-variant-numeric: tabular-nums;
  }
}

@layer states {
  @media (max-width: 800px) {
    .template-admin-frame {
      padding: var(--sp-5) 0 var(--sp-7);
    }

    .template-admin-sheet {
      padding: var(--sp-5) var(--sp-4) var(--sp-6);
    }

    .template-section-head,
    .template-create-form,
    .template-name-form,
    .template-publish,
    .template-question-list li,
    .template-form-grid,
    .template-form-grid--choices,
    .template-form-grid--rules {
      grid-template-columns: minmax(0, 1fr);
    }

    .template-count {
      justify-self: start;
    }

    .template-create-form .auth-primary,
    .template-name-form .auth-secondary,
    .template-publish .auth-primary {
      inline-size: 100%;
    }

    .template-question-actions {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 420px) {
    .template-question-actions {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (forced-colors: active) {
    .template-admin-sheet,
    .template-empty,
    .template-status,
    .template-error,
    .template-publish,
    .template-field input,
    .template-field select,
    .template-field textarea {
      border-color: CanvasText;
      background: Canvas;
      color: CanvasText;
    }

    .template-publish .auth-primary {
      forced-color-adjust: none;
    }
  }

  @media print {
    .template-breadcrumb,
    .template-create-form,
    .template-name-form,
    .template-question-actions,
    .template-question-form,
    .template-publish {
      display: none;
    }
  }
}

/* Phase 3 administration: instruments report scope before one lit configuration plate. */
@layer layout {
  .admin-frame {
    max-inline-size: 1280px;
    margin-inline: auto;
    padding: var(--sp-6) var(--sp-5) var(--sp-7);
  }

  .admin-console {
    min-inline-size: 0;
  }

  .admin-console--narrow {
    max-inline-size: 760px;
    margin-inline: auto;
  }

  .admin-grid {
    display: grid;
    grid-template-columns: minmax(20rem, 0.82fr) minmax(0, 1.18fr);
    gap: 1px;
    margin-block-start: var(--sp-5);
    background: var(--edge-600);
  }

  .admin-grid--roster {
    align-items: start;
  }

  .admin-instruments {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-block-start: var(--sp-5);
    background: var(--edge-600);
  }
}

@layer components {
  .admin-console__head {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-5);
    align-items: end;
    padding: var(--sp-5);
    border-block: 1px solid var(--edge-600);
    background: var(--field-800);
  }

  .admin-console__head h2 {
    font-size: clamp(var(--t-2xl), 4vw, var(--t-3xl));
    line-height: 1.04;
    text-wrap: balance;
  }

  .admin-console__head p {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-2);
    color: var(--on-700);
  }

  .admin-readout,
  .admin-state {
    flex: none;
    color: var(--on-700);
    font-family: var(--f-num);
    font-size: var(--t-sm);
    font-variant-numeric: tabular-nums;
  }

  .admin-state {
    padding: var(--sp-2) var(--sp-3);
    border: 1px solid var(--teal-400);
    color: var(--on-900);
  }

  .admin-status:empty {
    display: none;
  }

  .admin-status,
  .admin-alert {
    padding: var(--sp-3) var(--sp-5);
    border-block-end: 1px solid var(--edge-600);
    background: var(--field-700);
    color: var(--on-900);
  }

  .admin-status {
    border-block-start: 1px solid var(--teal-400);
  }

  .admin-alert {
    border-color: var(--alert-400);
  }

  .admin-plate,
  .admin-manifest {
    min-inline-size: 0;
    padding: var(--sp-6);
  }

  .admin-plate {
    background: var(--plate-100);
    color: var(--plate-ink);
    box-shadow: inset 0 0 0 1px var(--plate-rule), var(--plate-lift);
  }

  .admin-plate--wide {
    margin-block-start: var(--sp-6);
    padding-inline: var(--sp-7);
  }

  .admin-plate :focus-visible {
    outline-color: var(--focus-plate);
  }

  .admin-manifest {
    background: var(--field-800);
  }

  .admin-plate h2,
  .admin-plate h3,
  .admin-manifest h3,
  .admin-action-band h3 {
    font-family: var(--f-lbl);
    font-size: var(--t-xl);
    line-height: 1.25;
  }

  .admin-lede {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
    line-height: 1.55;
  }

  .admin-field {
    display: grid;
    gap: var(--sp-2);
    margin-block-start: var(--sp-5);
  }

  .admin-field label,
  .roster-action label {
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .admin-field input:not([type="checkbox"]),
  .admin-field select,
  .roster-action input,
  .callsign-table__change input[type="text"],
  .callsign-table__change select {
    inline-size: 100%;
    min-block-size: 48px;
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--plate-rule);
    background: var(--plate-200);
    color: var(--plate-ink);
    font: inherit;
  }

  .admin-field input[type="checkbox"] {
    inline-size: 28px;
    block-size: 28px;
    margin-inline-end: var(--sp-2);
    accent-color: var(--brass-plate);
    vertical-align: middle;
  }

  .admin-field input[type="file"] {
    min-block-size: 56px;
    padding: var(--sp-2);
  }

  .admin-field input[type="file"]::file-selector-button {
    min-block-size: var(--tap);
    margin-inline-end: var(--sp-3);
    padding-inline: var(--sp-4);
    border: 1px solid var(--plate-ink);
    background: transparent;
    color: var(--plate-ink);
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .admin-hint {
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  /* A digest is one unbreakable 64-character word; only it may break mid-token. */
  .admin-digest {
    overflow-wrap: anywhere;
  }

  .admin-field .errorlist {
    color: var(--alert-plate);
    font-weight: 700;
  }

  .admin-primary,
  .admin-secondary {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-block-size: var(--tap);
    font-family: var(--f-lbl);
    font-weight: 700;
    text-align: center;
    text-decoration: none;
  }

  .admin-primary {
    min-block-size: 56px;
    margin-block-start: var(--sp-5);
    padding-inline: var(--sp-7);
    border: 1px solid var(--brass-plate);
    background: var(--brass-plate);
    color: var(--on-brass-plate);
  }

  .admin-primary:hover {
    filter: brightness(0.94);
  }

  .admin-secondary {
    padding: var(--sp-2) var(--sp-4);
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
  }

  .admin-list,
  .roster-list,
  .preview-list {
    display: grid;
    gap: 1px;
    margin-block-start: var(--sp-4);
    background: var(--edge-600);
  }

  .admin-list li,
  .roster-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--sp-4);
    align-items: center;
    padding: var(--sp-4);
    background: var(--field-700);
  }

  .admin-list li div,
  .roster-list__identity {
    display: grid;
    min-inline-size: 0;
    gap: var(--sp-1);
  }

  .admin-list span,
  .roster-list__identity span,
  .roster-list__identity small {
    color: var(--on-700);
    overflow-wrap: anywhere;
  }

  /* The callsign list is a real table: tabular configuration data with a header
     row, not a set of cards. Ported from the accepted board (decision 175). */
  .callsign-table {
    inline-size: 100%;
    margin-block-start: var(--sp-5);
    border-block: 1px solid var(--plate-rule);
    border-collapse: collapse;
  }

  .callsign-table caption {
    max-inline-size: 68ch;
    padding-block-end: var(--sp-3);
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
    text-align: start;
    text-wrap: pretty;
  }

  .callsign-table th,
  .callsign-table td {
    padding: var(--sp-3) var(--sp-4) var(--sp-3) 0;
    border-block-start: 1px solid var(--plate-rule);
    text-align: start;
    vertical-align: top;
  }

  .callsign-table thead th {
    padding-block: var(--sp-2);
    border-block-start: 0;
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .callsign-table tbody th {
    font-weight: 400;
  }

  .callsign-table__change {
    min-inline-size: 0;
  }

  .callsign-table__change form {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: var(--sp-2) var(--sp-3);
  }

  .callsign-table__change form + form {
    margin-block-start: var(--sp-3);
  }

  .callsign-table__change label {
    flex: 1 0 100%;
  }

  .callsign-table__change input[type="text"],
  .callsign-table__change select {
    flex: 1 1 8rem;
    min-inline-size: 0;
  }

  /* Shape carries state before colour does: a filled square is held, a dashed
     square is an absence, a barred square is retired. The word beside it says
     the same thing independently, so colour is never the only channel. */
  .cs-state {
    display: inline-flex;
    align-items: baseline;
    gap: var(--sp-2);
    white-space: nowrap;
  }

  .cs-state__mk {
    flex: none;
    inline-size: 14px;
    block-size: 14px;
    translate: 0 2px;
  }

  .cs-state--held .cs-state__mk {
    border: 1px solid var(--teal-plate);
    background: var(--teal-plate);
  }

  .cs-state--open .cs-state__mk {
    border: 2px dashed var(--plate-ink-2);
  }

  .cs-state--retired .cs-state__mk {
    border: 2px solid var(--plate-ink-2);
    background: linear-gradient(
      to bottom,
      transparent 4px,
      var(--plate-ink-2) 4px 6px,
      transparent 6px
    );
  }

  .cs-state__w {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .cs-state--held .cs-state__w {
    color: var(--teal-plate);
  }

  .roster-action {
    display: grid;
    grid-template-columns: minmax(10rem, 1fr) auto;
    gap: var(--sp-2);
    align-items: end;
    min-inline-size: min(26rem, 45vw);
  }

  .roster-action label {
    grid-column: 1 / -1;
    font-size: var(--t-sm);
  }

  .roster-action input {
    border-color: var(--edge-500);
    background: var(--field-800);
    color: var(--on-900);
  }

  .admin-empty,
  .admin-neutral {
    margin-block-start: var(--sp-4);
    padding: var(--sp-5);
    border: 1px dashed currentColor;
  }

  .admin-empty p,
  .admin-neutral p {
    margin-block-start: var(--sp-2);
  }

  .admin-instruments > div {
    display: grid;
    align-content: start;
    min-block-size: 8rem;
    padding: var(--sp-4) var(--sp-5);
    background: var(--field-800);
  }

  .admin-instruments span,
  .admin-instruments small {
    color: var(--on-700);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
  }

  .admin-instruments strong {
    margin-block-start: var(--sp-3);
    color: var(--on-900);
    font-family: var(--f-num);
    font-size: clamp(var(--t-lg), 2.2vw, var(--t-2xl));
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
  }

  .preview-list {
    counter-reset: preview;
    background: var(--plate-rule);
  }

  .preview-list li {
    counter-increment: preview;
    display: grid;
    grid-template-columns: minmax(7rem, 0.6fr) minmax(12rem, 1.4fr) repeat(3, minmax(6rem, 0.7fr));
    gap: var(--sp-3);
    align-items: center;
    padding: var(--sp-3) var(--sp-4);
    background: var(--plate-200);
    overflow-wrap: anywhere;
  }

  .preview-list li::before {
    content: counter(preview);
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .preview-list small {
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .admin-action-band {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-5);
    align-items: center;
    margin-block-start: 1px;
    padding: var(--sp-5);
    border-block: 1px solid var(--brass-600);
    background: var(--field-800);
  }

  .admin-action-band p {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-2);
    color: var(--on-700);
  }

  .admin-action-band .admin-primary {
    margin-block-start: 0;
  }

  .admin-context-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2) var(--sp-5);
    margin-block-start: var(--sp-4);
  }

  .admin-context-links a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    color: var(--plate-ink);
    text-underline-offset: 0.2em;
  }

  .admin-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2) var(--sp-5);
    margin-block-start: var(--sp-6);
    padding-block-start: var(--sp-4);
    border-block-start: 1px solid var(--edge-600);
  }

  .admin-links a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    color: var(--on-900);
    text-underline-offset: 0.2em;
  }

  .admin-confirmation {
    display: grid;
    gap: 1px;
    margin-block-start: var(--sp-5);
    background: var(--plate-rule);
  }

  .admin-confirmation div {
    display: grid;
    grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr);
    gap: var(--sp-4);
    padding: var(--sp-3) var(--sp-4);
    background: var(--plate-200);
    overflow-wrap: anywhere;
  }

  .admin-confirmation dt {
    font-family: var(--f-lbl);
    font-weight: 700;
  }
}

@layer states {
  @media (max-width: 900px) {
    .admin-grid,
    .admin-instruments {
      grid-template-columns: minmax(0, 1fr);
    }

    .admin-list li,
    .roster-list li {
      grid-template-columns: minmax(0, 1fr);
    }

    .roster-action {
      min-inline-size: 0;
    }

    .preview-list li {
      grid-template-columns: minmax(7rem, 0.75fr) minmax(0, 1.25fr);
    }
  }

  @media (max-width: 640px) {
    .admin-frame {
      padding: var(--sp-4) 0 var(--sp-7);
    }

    .admin-console__head,
    .admin-action-band {
      align-items: stretch;
      flex-direction: column;
    }

    .admin-plate,
    .admin-manifest,
    .admin-plate--wide {
      padding: var(--sp-5) var(--sp-4);
    }

    .admin-readout,
    .admin-state {
      align-self: start;
    }

    .admin-primary,
    .admin-secondary {
      inline-size: 100%;
    }

    .roster-action,
    .preview-list li,
    .admin-confirmation div {
      grid-template-columns: minmax(0, 1fr);
    }

    .preview-list li span,
    .preview-list li small {
      display: block;
    }

    /* Below the reflow floor the table becomes one stacked record per callsign,
       with the header row hidden and each cell labelled in place. */
    .callsign-table,
    .callsign-table caption,
    .callsign-table tbody,
    .callsign-table tr,
    .callsign-table th,
    .callsign-table td {
      display: block;
    }

    .callsign-table thead {
      position: absolute;
      inline-size: 1px;
      block-size: 1px;
      overflow: hidden;
      clip-path: inset(50%);
    }

    .callsign-table tr {
      padding: var(--sp-3) 0;
      border-block-start: 1px solid var(--plate-rule);
    }

    .callsign-table tbody tr:first-child {
      border-block-start: 0;
    }

    .callsign-table th,
    .callsign-table td {
      padding: var(--sp-1) 0;
      border-block-start: 0;
    }

    .callsign-table td[data-lbl]::before {
      content: attr(data-lbl) " ";
      color: var(--plate-ink-2);
      font-family: var(--f-lbl);
      font-size: var(--t-2xs);
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }
  }

  @media (forced-colors: active) {
    .callsign-table,
    .callsign-table th,
    .callsign-table td {
      border-color: CanvasText;
    }

    .cs-state--held .cs-state__mk {
      forced-color-adjust: none;
      border-color: Highlight;
      background: Highlight;
    }

    .cs-state--open .cs-state__mk,
    .cs-state--retired .cs-state__mk {
      border-color: CanvasText;
    }

    .admin-plate,
    .admin-manifest,
    .admin-console__head,
    .admin-status,
    .admin-alert,
    .admin-instruments > div,
    .admin-list li,
    .roster-list li,
    .preview-list li,
    .admin-action-band,
    .admin-field input,
    .admin-field select,
    .roster-action input {
      border-color: CanvasText;
      background: Canvas;
      color: CanvasText;
    }

    .admin-primary {
      border-color: ButtonBorder;
      background: ButtonFace;
      color: ButtonText;
      filter: none;
    }
  }

  @media print {
    .admin-field,
    .admin-primary,
    .admin-secondary,
    .admin-links,
    .roster-action,
    .admin-action-band {
      display: none;
    }
  }
}

/* Phase 3 participant journey: three readings, one lit next-action plate, one watch list. */
@layer layout {
  .participant-shell {
    max-inline-size: 1440px;
    margin-inline: auto;
  }

  .participant-rail {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--sp-5);
    align-items: center;
    min-block-size: 72px;
    padding: var(--sp-3) var(--sp-5);
    border-block-end: 1px solid var(--edge-600);
  }

  .participant-instruments {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: var(--edge-600);
  }

  .participant-deck {
    display: grid;
    grid-template-columns: minmax(210px, 0.7fr) minmax(400px, 1.55fr) minmax(260px, 0.9fr);
    grid-template-areas: "nav main watch";
    gap: 1px;
    align-items: stretch;
    background: var(--edge-600);
  }

  .participant-plate {
    grid-area: main;
  }

  .participant-divisions {
    grid-area: nav;
  }

  .participant-watch {
    grid-area: watch;
  }

  .participant-review__deck {
    display: grid;
    grid-template-columns: minmax(220px, 0.65fr) minmax(0, 2fr);
    gap: 1px;
    max-inline-size: 1180px;
    margin-inline: auto;
    background: var(--edge-600);
  }
}

@layer components {
  .participant-rail__title {
    min-inline-size: 0;
  }

  .participant-rail__title h1 {
    overflow-wrap: anywhere;
    font-family: var(--f-lbl);
    font-size: clamp(var(--t-lg), 3vw, var(--t-2xl));
    font-weight: 600;
    line-height: 1.05;
  }

  .participant-rail__title p,
  .participant-rail__return {
    margin-block-start: var(--sp-1);
    color: var(--on-700);
    font-size: var(--t-sm);
  }

  .participant-callsign {
    display: inline-block;
    padding: 2px var(--sp-2) 3px;
    background: var(--teal-400);
    color: var(--on-teal);
    font-family: var(--f-num);
  }

  .participant-instruments > article {
    min-inline-size: 0;
    min-block-size: 164px;
    padding: var(--sp-4) var(--sp-5) var(--sp-5);
    background: var(--field-800);
  }

  .participant-instruments h2,
  .participant-divisions > h2,
  .participant-watch h2,
  .participant-review__summary h2 {
    color: var(--on-550);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .participant-instruments article > p:last-child {
    max-inline-size: 58ch;
    margin-block-start: var(--sp-2);
    color: var(--on-700);
    font-size: var(--t-sm);
    overflow-wrap: anywhere;
  }

  .participant-instrument__value {
    margin-block-start: var(--sp-3);
    color: var(--on-900);
    font-family: var(--f-num);
    font-size: clamp(var(--t-xl), 3vw, var(--t-3xl));
    font-variant-numeric: tabular-nums;
    line-height: 1.05;
  }

  .participant-instrument__value span {
    margin-inline-start: var(--sp-1);
    color: var(--on-700);
    font-size: var(--t-lg);
  }

  .participant-progress {
    position: relative;
    block-size: 7px;
    margin-block-start: var(--sp-3);
    border: 1px solid var(--edge-600);
    background: var(--field-700);
  }

  .participant-progress__fill {
    display: block;
    block-size: 100%;
    background: var(--teal-400);
  }

  .participant-divisions,
  .participant-watch,
  .participant-review__summary {
    min-inline-size: 0;
    padding: var(--sp-5);
    background: var(--field-800);
  }

  .participant-divisions ul,
  .participant-subjects {
    margin-block-start: var(--sp-4);
    list-style: none;
  }

  .participant-divisions li {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-3);
    min-block-size: var(--tap);
    border-block-start: 1px solid var(--edge-600);
  }

  .participant-divisions li:last-child {
    border-block-end: 1px solid var(--edge-600);
  }

  .participant-divisions a,
  .participant-divisions li > span {
    display: flex;
    align-items: center;
    flex: 1;
    min-block-size: var(--tap);
    color: var(--on-900);
    overflow-wrap: anywhere;
  }

  .participant-divisions strong {
    align-self: center;
    color: var(--on-700);
    font-family: var(--f-num);
    font-weight: 500;
  }

  .participant-divisions > p {
    margin-block-start: var(--sp-5);
    color: var(--on-700);
    font-size: var(--t-sm);
  }

  .participant-plate,
  .participant-review__plate {
    min-inline-size: 0;
    padding: var(--sp-6) var(--sp-7) var(--sp-7);
    background: var(--plate-100);
    color: var(--plate-ink);
    box-shadow: inset 0 0 0 1px var(--plate-rule), var(--plate-lift);
  }

  .participant-plate {
    display: grid;
    align-content: start;
    min-block-size: 510px;
  }

  .participant-plate h2,
  .participant-review__plate > header h2 {
    max-inline-size: 18ch;
    color: var(--plate-ink);
    font-size: clamp(var(--t-2xl), 5vw, var(--t-3xl));
    line-height: 1.04;
    text-wrap: balance;
  }

  .participant-plate header p,
  .participant-review__plate > header p {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-3);
    color: var(--plate-ink-2);
    font-size: var(--t-lg);
  }

  .participant-kick,
  .participant-proof,
  .participant-meaning h3,
  .participant-meaning li > span {
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .participant-kick,
  .participant-proof {
    color: var(--teal-plate);
  }

  .participant-kick {
    margin-block-end: var(--sp-3);
  }

  .participant-proof {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-3);
  }


  .participant-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: start;
    min-block-size: 56px;
    margin-block-start: var(--sp-6);
    padding: var(--sp-4) var(--sp-7);
    border: 0;
    background: var(--brass-plate);
    color: var(--on-brass-plate);
    font: 700 var(--t-base)/1.2 var(--f-lbl);
    text-decoration: none;
    cursor: pointer;
  }

  .participant-primary:hover {
    background: var(--plate-ink);
    color: var(--plate-100);
  }

  .participant-primary--muted {
    border: 1px solid var(--plate-rule);
    background: transparent;
    color: var(--plate-ink);
  }

  .participant-primary--muted:hover {
    background: var(--plate-200);
    color: var(--plate-ink);
  }

  .participant-action-subtext {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-3);
    color: var(--plate-ink-2);
  }

  .participant-meaning {
    margin-block-start: var(--sp-6);
  }

  .participant-meaning h3 {
    color: var(--plate-ink-2);
  }

  .participant-meaning ol {
    display: grid;
    gap: var(--sp-3);
    margin-block-start: var(--sp-3);
    list-style: none;
  }

  .participant-meaning li {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: var(--sp-3);
    padding-block-start: var(--sp-3);
    border-block-start: 1px solid var(--plate-rule);
    color: var(--plate-ink);
  }

  .participant-meaning li > span {
    color: var(--teal-plate);
  }


  .participant-primary:focus-visible,
  .participant-review__division > a:focus-visible,
  .participant-subject-nav a:focus-visible {
    outline: 3px solid var(--focus-plate);
    outline-offset: 2px;
  }

  .participant-disclosure {
    align-self: end;
    max-inline-size: 68ch;
    margin-block-start: var(--sp-7);
    padding-block-start: var(--sp-4);
    border-block-start: 1px solid var(--teal-plate);
    color: var(--plate-ink-2);
  }

  .participant-state {
    margin-block-start: var(--sp-5);
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--teal-plate);
    color: var(--plate-ink);
  }

  .participant-state--missing {
    border-style: dashed;
    border-color: var(--plate-ink-2);
  }

  .participant-watch__head {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-3);
    align-items: baseline;
  }

  .participant-watch__head span {
    color: var(--on-700);
    font-family: var(--f-num);
  }

  .participant-subjects {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--edge-600);
  }

  .participant-subjects a,
  .participant-subject,
  .participant-subject-empty {
    display: grid;
    align-content: center;
    min-block-size: 56px;
    padding: var(--sp-2) var(--sp-3);
    background: var(--field-700);
    color: var(--on-900);
    text-decoration: none;
    overflow-wrap: anywhere;
  }

  .participant-subject-empty {
    border: 1px dashed var(--edge-600);
    color: var(--on-700);
  }


  .participant-subjects a.is-complete,
  .participant-subject.is-complete {
    background: var(--teal-400);
    color: var(--on-teal);
  }

  .participant-subjects a.is-current {
    outline: 2px solid var(--teal-400);
    outline-offset: -2px;
  }

  .participant-subjects span {
    font-family: var(--f-num);
    font-weight: 600;
  }

  .participant-subjects small {
    margin-block-start: 2px;
    font-size: var(--t-2xs);
  }

  .participant-review__summary p {
    margin-block-start: var(--sp-3);
    color: var(--on-700);
  }

  .participant-review__summary strong {
    display: block;
    color: var(--on-900);
    font-family: var(--f-num);
    font-size: var(--t-2xl);
  }

  .participant-missing {
    margin-block: var(--sp-6);
    padding: var(--sp-4);
    border: 1px dashed var(--plate-ink-2);
  }

  .participant-review__division {
    border-block-start: 1px solid var(--plate-rule);
  }

  .participant-review__division:last-of-type {
    border-block-end: 1px solid var(--plate-rule);
  }

  .participant-review__division summary {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-4);
    align-items: center;
    min-block-size: 56px;
    padding-block: var(--sp-3);
    cursor: pointer;
    font-family: var(--f-lbl);
    font-weight: 600;
  }

  .participant-review__division summary small {
    color: var(--plate-ink-2);
    font-family: var(--f-num);
    font-weight: 400;
  }

  .participant-review__division dl > div {
    display: grid;
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1.2fr);
    gap: var(--sp-5);
    padding-block: var(--sp-3);
    border-block-start: 1px solid var(--plate-rule);
  }

  .participant-review__division dl > div.is-not-provided {
    border-block-start-style: dashed;
  }

  .participant-review__division dt {
    font-weight: 600;
    overflow-wrap: anywhere;
  }

  .participant-review__division dd {
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .participant-review__division > a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    margin-block: var(--sp-2) var(--sp-4);
    color: var(--teal-plate);
  }

  .participant-review__commit {
    margin-block-start: var(--sp-7);
    padding-block-start: var(--sp-5);
    border-block-start: 2px solid var(--plate-ink);
  }

  .participant-review__commit p {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-2);
    color: var(--plate-ink-2);
  }

  .participant-subject-nav {
    display: grid;
    gap: 1px;
    margin-block-start: var(--sp-6);
    background: var(--edge-600);
  }

  .participant-subject-nav a {
    display: flex;
    align-items: center;
    min-block-size: var(--tap);
    padding-inline: var(--sp-3);
    background: var(--field-700);
    color: var(--on-900);
  }
}

@layer states {
  @media (max-width: 1000px) {
    .participant-deck {
      grid-template-columns: minmax(190px, 0.65fr) minmax(0, 1.35fr);
      grid-template-areas:
        "nav main"
        "watch watch";
    }

    .participant-watch {
      grid-column: 1 / -1;
    }

    .participant-subjects {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }

  @media (max-width: 800px) {
    .participant-deck {
      grid-template-areas:
        "main"
        "nav"
        "watch";
    }

    .participant-rail,
    .participant-instruments,
    .participant-deck,
    .participant-review__deck {
      grid-template-columns: minmax(0, 1fr);
    }

    .participant-rail {
      gap: var(--sp-3);
      padding-inline: var(--sp-4);
    }

    .participant-rail .theme-control {
      justify-self: stretch;
    }

    .participant-instruments > article {
      min-block-size: 0;
      padding-inline: var(--sp-4);
    }

    .participant-plate,
    .participant-review__plate {
      min-block-size: 0;
      padding: var(--sp-5) var(--sp-4) var(--sp-6);
    }

    .participant-divisions,
    .participant-review__summary {
      padding-inline: var(--sp-4);
    }

    .participant-watch {
      grid-column: auto;
      padding-inline: var(--sp-4);
    }

    .participant-subjects {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .participant-primary {
      inline-size: 100%;
    }

    .participant-review__division dl > div {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--sp-1);
    }
  }

  @media (max-width: 420px) {
    .participant-subjects {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .participant-review__division summary {
      align-items: flex-start;
      flex-direction: column;
      gap: var(--sp-1);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .participant-primary,
    .participant-subjects a {
      scroll-behavior: auto;
      transition: none;
    }
  }

  @media (forced-colors: active) {
    .participant-instruments > article,
    .participant-divisions,
    .participant-watch,
    .participant-review__summary,
    .participant-plate,
    .participant-review__plate,
    .participant-subjects a,
    .participant-subject,
    .participant-subject-empty,
    .participant-state,
    .participant-missing {
      border-color: CanvasText;
      background: Canvas;
      color: CanvasText;
    }

    .participant-primary {
      border: 1px solid ButtonBorder;
      background: ButtonFace;
      color: ButtonText;
    }

    .participant-primary:hover {
      background: Highlight;
      color: HighlightText;
    }

    .participant-subjects a.is-complete {
      border: 1px solid Highlight;
      background: Canvas;
      color: CanvasText;
    }
  }
}

/* Shared authenticated controls, resilient system notices, and Phase 3 review hooks. */
@layer layout {
  .error-shell {
    max-inline-size: 1180px;
    margin-inline: auto;
  }

  .error-shell__frame {
    display: grid;
    grid-template-columns: minmax(13rem, 0.4fr) minmax(0, 1.6fr);
    gap: 1px;
    background: var(--edge-600);
  }
}

@layer components {
  .authenticated-navigation {
    display: flex;
    justify-content: flex-end;
    gap: var(--sp-4);
    align-items: center;
    min-inline-size: 0;
    padding: var(--sp-2) var(--sp-5);
    border-block-end: 1px solid var(--edge-600);
    background: var(--field-800);
    color: var(--on-900);
  }

  .authenticated-navigation > p {
    color: var(--on-700);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .authenticated-navigation > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2);
    align-items: center;
    min-inline-size: 0;
  }

  .authenticated-navigation a,
  .authenticated-navigation button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--tap);
    padding-inline: var(--sp-3);
    border: 1px solid var(--edge-500);
    background: transparent;
    color: var(--on-900);
    font-family: var(--f-lbl);
    font-weight: 600;
    text-underline-offset: 0.2em;
  }

  .authenticated-navigation form {
    display: contents;
  }

  .authenticated-navigation button {
    border-color: var(--brass-500);
  }

  .authenticated-navigation a:hover,
  .authenticated-navigation button:hover {
    background: var(--field-700);
  }

  .error-shell__rail {
    display: flex;
    gap: var(--sp-4);
    align-items: center;
    padding: var(--sp-3) var(--sp-5);
    border-block-end: 1px solid var(--edge-600);
  }

  .error-shell__rail > p {
    color: var(--on-700);
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
    font-weight: 600;
  }

  .error-index {
    min-inline-size: 0;
    padding: var(--sp-5);
    background: var(--field-800);
    color: var(--on-900);
  }

  .error-index h2 {
    color: var(--on-700);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .error-index__code {
    margin-block-start: var(--sp-3);
    font-family: var(--f-num);
    font-size: var(--t-2xl);
    font-weight: 500;
  }

  .error-index > p:last-child {
    margin-block-start: var(--sp-5);
    color: var(--on-700);
  }

  .error-shell__plate {
    min-inline-size: 0;
    padding: var(--sp-6) var(--sp-7) var(--sp-7);
    background: var(--plate-100);
    color: var(--plate-ink);
    box-shadow: inset 0 0 0 1px var(--plate-rule), var(--plate-lift);
  }

  .error-shell__plate :focus-visible {
    outline-color: var(--focus-plate);
  }

  .error-shell__plate h1 {
    max-inline-size: 20ch;
    font-size: clamp(var(--t-2xl), 5vw, var(--t-3xl));
    line-height: 1.04;
    text-wrap: balance;
  }

  .error-copy {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-3);
    color: var(--plate-ink-2);
    font-size: var(--t-lg);
  }

  .error-next,
  .error-support {
    max-inline-size: 68ch;
    margin-block-start: var(--sp-6);
    padding-block-start: var(--sp-4);
    border-block-start: 1px solid var(--plate-rule);
  }

  .error-next h2,
  .error-support h2 {
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
  }

  .error-next p,
  .error-support p {
    margin-block-start: var(--sp-2);
    overflow-wrap: anywhere;
  }

  .error-shell__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    margin-block-start: var(--sp-5);
  }

  .error-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: 56px;
    padding-inline: var(--sp-7);
    border: 1px solid var(--brass-plate);
    background: var(--brass-plate);
    color: var(--on-brass-plate);
    font-family: var(--f-lbl);
    font-weight: 700;
    text-decoration: none;
  }

  .error-primary:hover {
    background: var(--plate-ink);
    color: var(--plate-100);
  }

  .error-shell__request {
    margin-block-start: var(--sp-4);
  }

  .error-shell__request > div {
    display: grid;
    grid-template-columns: minmax(7rem, 0.35fr) minmax(0, 1fr);
    gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--plate-rule);
    background: var(--plate-200);
  }

  .error-shell__request dt {
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .error-shell__request dd,
  .error-shell__request code {
    min-inline-size: 0;
    font-family: var(--f-num);
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .answer-mode {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2) var(--sp-5);
    margin-block-start: var(--sp-4) !important;
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
  }

  .answer-mode legend {
    flex-basis: 100%;
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
  }

  .answer-mode label {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
  }

  .answer-mode input {
    inline-size: 1.1rem;
    block-size: 1.1rem;
    margin-inline-end: var(--sp-2);
    accent-color: var(--teal-plate);
  }

  .submission-receipt-counts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 1px;
    margin-block-start: var(--sp-5);
    background: var(--plate-rule);
  }

  .submission-receipt-counts > div {
    min-inline-size: 0;
    padding: var(--sp-3) var(--sp-4);
    background: var(--plate-200);
  }

  .submission-receipt-counts dt {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
  }

  .submission-receipt-counts dd {
    margin-block-start: var(--sp-1);
    font-family: var(--f-num);
    font-size: var(--t-lg);
    overflow-wrap: anywhere;
  }

  .evidence-item,
  .evidence-version,
  .recipient-reason,
  .long-content,
  .aggregate-table-wrap {
    min-inline-size: 0;
  }

  .evidence-item blockquote,
  .recipient-reason,
  .long-content,
  .evidence-links-list,
  .evidence-links-list a {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .recipient-reason {
    max-inline-size: 68ch;
  }

  .evidence-links-list {
    display: grid;
    gap: var(--sp-2);
    margin-block-start: var(--sp-4);
  }

  .evidence-links-list a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    color: var(--plate-ink);
    font-family: var(--f-num);
    font-size: var(--t-sm);
    font-weight: 700;
  }

  .aggregate-tallies {
    min-inline-size: 0;
    margin-block-start: var(--sp-6);
  }

  .aggregate-question {
    margin-block-start: var(--sp-5);
    color: var(--plate-ink);
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
  }

  .aggregate-table-wrap {
    max-inline-size: 100%;
    margin-block-start: var(--sp-3);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    border: 1px solid var(--plate-rule);
  }

  .aggregate-table {
    inline-size: 100%;
    border-collapse: collapse;
    background: var(--plate-100);
    color: var(--plate-ink);
    font-variant-numeric: tabular-nums;
  }

  .aggregate-table th,
  .aggregate-table td {
    min-inline-size: 0;
    padding: var(--sp-2) var(--sp-3);
    border-block-end: 1px solid var(--plate-rule);
    text-align: start;
    overflow-wrap: anywhere;
  }

  .aggregate-table th {
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .aggregate-table td:last-child {
    text-align: end;
  }

  .aggregate-self {
    border-block: 1px solid var(--teal-plate);
    font-weight: 700;
  }

  .preview-list li {
    display: block;
  }

  .preview-list__fields {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--sp-3);
    margin: 0;
  }

  .preview-list__field {
    display: grid;
    align-content: start;
    min-inline-size: 0;
    gap: var(--sp-1);
  }

  .preview-list__term {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
  }

  .preview-list__value {
    min-inline-size: 0;
    margin: 0;
    overflow-wrap: anywhere;
  }

  .preview-list__value--callsign {
    font-family: var(--f-num);
    font-weight: 600;
  }

  .roster-workflow,
  .roster-refusal,
  .cycle-lifecycle,
  .cycle-reminders,
  .cycle-consequences {
    min-inline-size: 0;
    margin-block-start: var(--sp-5);
    padding-block-start: var(--sp-4);
    border-block-start: 1px solid var(--plate-rule);
  }

  .roster-consequence-list,
  .roster-audit,
  .cycle-lifecycle__list,
  .cycle-reminders__list,
  .audit-timeline,
  .support-list {
    display: grid;
    gap: 1px;
    margin-block-start: var(--sp-4);
    padding: 0;
    background: var(--plate-rule);
    list-style: none;
  }

  .roster-consequence-list > li,
  .roster-audit__entry,
  .cycle-lifecycle__row,
  .cycle-reminders__row,
  .audit-event,
  .support-item {
    min-inline-size: 0;
    padding: var(--sp-4);
    background: var(--plate-200);
    color: var(--plate-ink);
    overflow-wrap: anywhere;
  }

  .roster-audit__meta,
  .audit-event__head,
  .support-item__head {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-3);
    align-items: baseline;
    min-inline-size: 0;
  }

  .roster-audit__meta,
  .cycle-lifecycle__status,
  .audit-event__head time,
  .support-item__head time {
    color: var(--plate-ink-2);
    font-family: var(--f-num);
    font-size: var(--t-xs);
  }

  .cycle-consequences {
    border-block: 1px solid var(--alert-plate);
    padding: var(--sp-4);
  }

  /* A refused deletion is an expected answer, not a failure, so it carries the
     ordinary plate rule rather than the alert edge. */
  .roster-refusal {
    border-block: 1px solid var(--plate-rule);
    padding: var(--sp-4);
  }

  .cycle-lifecycle__row,
  .cycle-reminders__row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--sp-3);
    align-items: start;
  }

  .audit-facts,
  .audit-metadata,
  .support-facts {
    display: grid;
    gap: 1px;
    margin-block-start: var(--sp-3);
    background: var(--plate-rule);
  }

  .audit-facts > div,
  .audit-metadata > div,
  .support-facts > div {
    display: grid;
    grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr);
    gap: var(--sp-3);
    min-inline-size: 0;
    padding: var(--sp-2) var(--sp-3);
    background: var(--plate-100);
  }

  .audit-facts dt,
  .audit-metadata dt,
  .support-facts dt {
    font-family: var(--f-lbl);
    font-weight: 700;
  }

  .audit-facts dd,
  .audit-metadata dd,
  .support-facts dd,
  .support-request-id {
    min-inline-size: 0;
    margin: 0;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .audit-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    justify-content: space-between;
    margin-block-start: var(--sp-5);
  }

  .audit-pagination a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    padding-inline: var(--sp-3);
  }

  .support-lookup {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    align-items: end;
    margin-block-start: var(--sp-5);
  }

  .support-lookup > * {
    min-inline-size: 0;
  }
}

@layer states {
  @media (max-width: 900px) {
    .preview-list__fields {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 800px) {
    .error-shell__frame {
      grid-template-columns: minmax(0, 1fr);
    }

    .error-index {
      padding: var(--sp-4);
    }

    .error-shell__plate {
      padding: var(--sp-5) var(--sp-4) var(--sp-6);
    }

    .cycle-lifecycle__row,
    .cycle-reminders__row {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 640px) {
    .authenticated-navigation {
      align-items: stretch;
      flex-direction: column;
      padding-inline: var(--sp-4);
    }

    .authenticated-navigation > div {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }

    .authenticated-navigation a,
    .authenticated-navigation button,
    .error-primary {
      inline-size: 100%;
    }

    .error-shell__rail {
      align-items: flex-start;
      flex-direction: column;
      padding-inline: var(--sp-4);
    }

    .error-shell__request > div,
    .audit-facts > div,
    .audit-metadata > div,
    .support-facts > div {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--sp-1);
    }

    .preview-list__fields,
    .submission-receipt-counts {
      grid-template-columns: minmax(0, 1fr);
    }

    .roster-audit__meta,
    .audit-event__head,
    .support-item__head,
    .support-lookup {
      align-items: stretch;
      flex-direction: column;
    }
  }

  @media (forced-colors: active) {
    .authenticated-navigation,
    .error-shell__rail,
    .error-index,
    .error-shell__plate,
    .error-shell__request > div,
    .submission-receipt-counts > div,
    .aggregate-table-wrap,
    .aggregate-table,
    .aggregate-table th,
    .aggregate-table td,
    .roster-consequence-list > li,
    .roster-audit__entry,
    .cycle-lifecycle__row,
    .cycle-reminders__row,
    .cycle-consequences,
    .roster-refusal,
    .audit-event,
    .support-item,
    .audit-facts > div,
    .audit-metadata > div,
    .support-facts > div {
      border-color: CanvasText;
      background: Canvas;
      color: CanvasText;
      box-shadow: none;
    }

    .authenticated-navigation a,
    .authenticated-navigation button,
    .error-primary {
      border-color: ButtonBorder;
      background: ButtonFace;
      color: ButtonText;
    }

    .authenticated-navigation a {
      color: LinkText;
    }

    .aggregate-self {
      border-color: Highlight;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .aggregate-table-wrap {
      scroll-behavior: auto;
    }
  }

  @media print {
    .authenticated-navigation,
    .error-shell__rail,
    .error-index,
    .error-shell__actions,
    .audit-pagination,
    .support-lookup,
    .cycle-lifecycle form,
    .cycle-reminders form,
    .cycle-lifecycle button,
    .cycle-reminders button {
      display: none;
    }

    .error-shell__frame {
      display: block;
      background: none;
    }

    .error-shell__plate,
    .error-shell__request > div,
    .aggregate-table,
    .aggregate-table th,
    .aggregate-table td,
    .submission-receipt-counts > div,
    .roster-consequence-list > li,
    .roster-audit__entry,
    .cycle-lifecycle__row,
    .cycle-reminders__row,
    .cycle-consequences,
    .roster-refusal,
    .audit-event,
    .support-item,
    .audit-facts > div,
    .audit-metadata > div,
    .support-facts > div {
      border-color: #000;
      background: #fff !important;
      color: #000 !important;
      box-shadow: none;
    }

    .error-shell__plate {
      padding: 0;
    }

    .aggregate-table-wrap {
      overflow: visible;
      border-color: #000;
    }

    .aggregate-table tr,
    .roster-audit__entry,
    .cycle-lifecycle__row,
    .cycle-reminders__row,
    .audit-event,
    .support-item {
      break-inside: avoid;
    }

    .evidence-item blockquote,
    .recipient-reason,
    .long-content,
    .evidence-links-list,
    .support-request-id,
    .error-shell__request code {
      overflow-wrap: anywhere;
      word-break: break-word;
    }
  }
}

@layer components {
  /* System administration — ported from proto/system-admin.html.
     Named local components keep their board vocabulary. Chrome is scoped
     under .sysadmin so evaluation .work/.sheet/.q are not reused. */
  .sysadmin .rail {
    max-inline-size: 1440px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    flex-wrap: wrap;
    padding: var(--sp-3) var(--sp-5);
  }
  .sysadmin .rail__mark {
    font-family: var(--f-lbl);
    font-weight: 700;
    font-size: var(--t-md);
    letter-spacing: 0.12em;
    color: var(--brass-500);
    border: 1px solid var(--brass-600);
    padding: 2px var(--sp-2) 3px;
  }
  .sysadmin .rail__note { font-size: 0.625rem; color: var(--on-550); letter-spacing: 0.03em; }
  .sysadmin .rail__h {
    margin-inline: var(--sp-5) auto;
    font-family: var(--f-lbl);
    font-size: var(--t-lg);
    font-weight: 600;
  }
  .sysadmin .rail__id { display: inline-flex; align-items: baseline; gap: var(--sp-2); }
  .sysadmin .rail__role { font-size: var(--t-sm); color: var(--on-700); }
  .sysadmin .rail__out {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    font-size: var(--t-sm);
    color: var(--on-900);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .sysadmin .lead-bar {
    max-inline-size: 1440px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    flex-wrap: wrap;
    padding: var(--sp-3) var(--sp-5);
    background: var(--field-800);
    border-block: 1px solid var(--edge-600);
  }
  .sysadmin .lead-pos { font-family: var(--f-num); font-size: var(--t-xs); color: var(--on-550); }
  .sysadmin .lead-pos b { color: var(--on-900); font-weight: 500; }
  .sysadmin .lead-spacer { flex: 1; }
  .sysadmin .rate {
    display: flex;
    align-items: baseline;
    gap: var(--sp-2);
    border: 1px solid var(--edge-500);
    padding: var(--sp-1) var(--sp-3);
  }
  .sysadmin .rate__n { font-family: var(--f-num); font-size: var(--t-sm); font-weight: 700; color: var(--on-900); }
  .sysadmin .rate__l {
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--on-550);
  }
  .sysadmin .work {
    max-inline-size: 1180px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: 268px minmax(0, 1fr);
    gap: 1px;
    background: var(--edge-600);
    align-items: stretch;
  }
  .sysadmin .nav,
  .sysadmin .sheet { min-inline-size: 0; }
  .sysadmin .nav { background: var(--field-900); padding: var(--sp-5) var(--sp-4); }
  .sysadmin .nav > * + * { margin-block-start: var(--sp-5); }
  .sysadmin .navcell__n { font-size: var(--t-xs); color: var(--on-700); }
  .sysadmin .col__h {
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--on-550);
  }
  .sysadmin .nav__note { font-size: var(--t-xs); color: var(--on-700); text-wrap: pretty; }
  .sysadmin .adminnav { margin-block-start: var(--sp-3); display: grid; gap: var(--sp-1); }
  .sysadmin .adminnav__link {
    display: flex;
    align-items: center;
    min-block-size: var(--tap);
    padding: var(--sp-2) var(--sp-3);
    border: 1px solid var(--edge-500);
    color: var(--on-700);
    font-family: var(--f-lbl);
    font-size: var(--t-sm);
  }
  .sysadmin .adminnav__link:hover { border-color: var(--on-700); color: var(--on-900); }
  .sysadmin .adminnav__link--now {
    border: 2px solid var(--teal-400);
    color: var(--teal-400);
    font-weight: 700;
  }
  .sysadmin .sheet {
    background: var(--plate-100);
    color: var(--plate-ink);
    padding: var(--sp-6) var(--sp-7) var(--sp-7);
    box-shadow: inset 0 0 0 1px var(--plate-rule), var(--plate-lift);
  }
  .sysadmin .sheet :focus-visible { outline-color: var(--focus-plate); }
  .sysadmin .sheet__pos { font-family: var(--f-num); font-size: var(--t-xs); color: var(--plate-ink-2); }
  .sysadmin .sheet__h {
    font-size: var(--t-2xl);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.02em;
    margin-block: var(--sp-1) 0;
    text-wrap: balance;
  }
  .sysadmin .sheet__lede {
    margin-block-start: var(--sp-3);
    font-size: var(--t-base);
    color: var(--plate-ink-2);
    max-inline-size: 64ch;
    text-wrap: pretty;
  }
  .sysadmin .q {
    margin-block-start: var(--sp-7);
    padding-block-start: var(--sp-5);
    border-block-start: 1px solid var(--plate-rule);
    max-inline-size: 68ch;
  }
  .sysadmin .q:first-of-type { border-block-start: 0; }
  .sysadmin .q__top {
    display: flex;
    align-items: baseline;
    gap: var(--sp-3);
    flex-wrap: wrap;
    max-inline-size: 68ch;
  }
  .sysadmin .q__h { font-size: var(--t-lg); font-weight: 700; letter-spacing: -0.005em; }
  .sysadmin .q__tag {
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--plate-ink-2);
    margin-inline-start: auto;
    border: 1px solid var(--plate-rule);
    padding: 2px var(--sp-2);
  }
  .sysadmin .q__text { margin-block-start: var(--sp-2); font-size: var(--t-sm); color: var(--plate-ink-2); text-wrap: pretty; }
  .sysadmin .field,
  .sysadmin input.field {
    display: block;
    inline-size: 100%;
    max-inline-size: 62ch;
    margin-block-start: var(--sp-3);
    font: inherit;
    font-size: var(--t-base);
    line-height: 1.6;
    color: var(--plate-ink);
    background: var(--plate-200);
    border: 1px solid var(--plate-rule);
    padding: var(--sp-3) var(--sp-4);
  }
  .sysadmin .go {
    margin-block-start: var(--sp-6);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--brass-600);
    color: var(--on-brass);
    font-weight: 700;
    font-size: var(--t-md);
    letter-spacing: 0.01em;
    padding: var(--sp-4) var(--sp-7);
    min-block-size: 56px;
    border: 1px solid var(--brass-600);
  }
  .sysadmin .foot {
    margin-block-start: var(--sp-7);
    padding-block-start: var(--sp-5);
    border-block-start: 1px solid var(--plate-rule);
    display: flex;
    align-items: center;
    gap: var(--sp-5);
    flex-wrap: wrap;
  }
  .sysadmin .foot__back {
    font-size: var(--t-sm);
    font-weight: 600;
    color: var(--plate-ink);
    min-block-size: var(--tap);
    display: inline-flex;
    align-items: center;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: var(--plate-rule);
  }
  .sysadmin .foot__note {
    font-size: var(--t-sm);
    color: var(--plate-ink-2);
    flex: 1;
    min-inline-size: 16ch;
    text-wrap: pretty;
  }
  .sysadmin .foot .go { margin-block-start: 0; margin-inline-start: auto; }
  .sysadmin .action-preview { margin-block-start: var(--sp-5); border: 1px solid var(--plate-rule); }
  .sysadmin .action-preview > div {
    display: grid;
    grid-template-columns: 9rem minmax(0, 1fr);
    gap: var(--sp-4);
    padding: var(--sp-3) var(--sp-4);
    border-block-start: 1px solid var(--plate-rule);
  }
  .sysadmin .action-preview > div:first-child { border-block-start: 0; }
  .sysadmin .action-preview dt {
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--plate-ink-2);
  }
  .sysadmin .action-preview dd { margin: 0; font-size: var(--t-sm); color: var(--plate-ink); overflow-wrap: anywhere; }
  .sysadmin .handoff {
    margin-block-start: var(--sp-5);
    padding: var(--sp-4) var(--sp-5);
    border: 1px dashed var(--plate-ink-2);
    max-inline-size: 68ch;
  }
  .sysadmin .handoff__h {
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--plate-ink-2);
  }
  .sysadmin .handoff p { margin-block-start: var(--sp-2); font-size: var(--t-sm); color: var(--plate-ink); text-wrap: pretty; }
  .sysadmin .queue-note { margin-block-start: var(--sp-5); font-size: var(--t-sm); color: var(--plate-ink-2); max-inline-size: 68ch; text-wrap: pretty; }

  .sysadmin .sysread {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: var(--edge-600);
    margin-block: var(--sp-5);
  }
  .sysadmin .sysread > div {
    background: var(--field-800);
    padding: var(--sp-4) var(--sp-5);
    display: grid;
    gap: var(--sp-2);
  }
  .sysadmin .sysread span {
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--on-550);
  }
  .sysadmin .sysread strong {
    font-family: var(--f-num);
    font-size: var(--t-2xl);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--on-900);
  }
  .sysadmin .sysread strong .unit {
    font-family: var(--f-ui);
    font-size: var(--t-md);
    font-weight: 400;
    letter-spacing: normal;
    color: var(--on-550);
  }
  .sysadmin .sysread small { color: var(--on-700); font-size: var(--t-sm); text-wrap: pretty; }
  .sysadmin .plank { margin-block-start: var(--sp-5); border-block: 1px solid var(--plate-rule); }
  .sysadmin .plank table { inline-size: 100%; border-collapse: collapse; }
  .sysadmin .plank caption {
    text-align: start;
    padding-block-end: var(--sp-3);
    font-size: var(--t-sm);
    color: var(--plate-ink-2);
    max-inline-size: 68ch;
    text-wrap: pretty;
  }
  .sysadmin .plank th,
  .sysadmin .plank td {
    text-align: start;
    padding: var(--sp-3) var(--sp-4) var(--sp-3) 0;
    border-block-start: 1px solid var(--plate-rule);
    vertical-align: top;
  }
  .sysadmin .plank thead th {
    border-block-start: 0;
    padding-block: var(--sp-2);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--plate-ink-2);
    white-space: nowrap;
  }
  .sysadmin .plank tbody th { font-weight: 400; }
  .sysadmin .plank td { font-size: var(--t-sm); color: var(--plate-ink); }
  .sysadmin .plank small { font-size: var(--t-xs); color: var(--plate-ink-2); }
  .sysadmin .plank code {
    font-family: var(--f-num);
    font-size: var(--t-xs);
    color: var(--plate-ink-2);
    overflow-wrap: anywhere;
  }
  .sysadmin .ref { font-family: var(--f-num); font-size: var(--t-sm); font-weight: 700; color: var(--plate-ink); overflow-wrap: anywhere; }
  .sysadmin .jst { display: inline-flex; align-items: baseline; gap: var(--sp-2); white-space: nowrap; }
  .jst__mk { inline-size: 14px; block-size: 14px; flex: none; translate: 0 2px; }
  .jst--done .jst__mk { background: var(--teal-plate); border: 1px solid var(--teal-plate); }
  .jst--waiting .jst__mk { border: 2px dashed var(--plate-ink-2); }
  .jst--stopped .jst__mk {
    border: 2px solid var(--plate-ink-2);
    background: linear-gradient(to bottom, transparent 4px, var(--plate-ink-2) 4px 6px, transparent 6px);
  }
  .jst__w {
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--plate-ink-2);
  }
  .jst--done .jst__w { color: var(--teal-plate); }
  .sysadmin .rowacts { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); }
  .sysadmin .rowacts a,
  .sysadmin .rowacts button {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
    font-size: var(--t-sm);
    color: var(--plate-ink);
    background: none;
    border: 0;
    padding: 0;
    text-decoration-line: underline;
    text-decoration-color: var(--plate-rule);
    text-underline-offset: 3px;
    cursor: pointer;
  }
  .sysadmin .proofline { margin-block-start: var(--sp-4); border: 1px solid var(--plate-rule); }
  .proofline__h {
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--plate-ink-2);
    padding: var(--sp-3) var(--sp-4);
    border-block-end: 1px solid var(--plate-rule);
  }
  .sysadmin .proofline li {
    display: grid;
    grid-template-columns: 8.5rem minmax(0, 1fr);
    gap: var(--sp-3);
    align-items: baseline;
    min-block-size: var(--tap);
    padding: var(--sp-3) var(--sp-4);
    border-block-start: 1px solid var(--plate-rule);
    font-size: var(--t-sm);
    color: var(--plate-ink);
    text-wrap: pretty;
  }
  .sysadmin .proofline li:first-child { border-block-start: 0; }
  .proofline__who {
    font-family: var(--f-lbl);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: var(--t-2xs);
    color: var(--plate-ink-2);
  }
  .sysadmin .refusal { margin-block-start: var(--sp-5); border: 1px solid var(--plate-rule); max-inline-size: 72ch; }
  .refusal__h {
    font-family: var(--f-lbl);
    font-size: var(--t-xs);
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--plate-ink-2);
    padding: var(--sp-3) var(--sp-4);
    border-block-end: 1px solid var(--plate-rule);
  }
  .sysadmin .refusal > p { padding: var(--sp-4); font-size: var(--t-base); color: var(--plate-ink); text-wrap: pretty; }
  .sysadmin .blockers { padding: 0 var(--sp-4) var(--sp-4); display: grid; gap: var(--sp-3); }
  .sysadmin .blockers li {
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr);
    gap: var(--sp-3);
    align-items: start;
    font-size: var(--t-sm);
    color: var(--plate-ink);
    text-wrap: pretty;
  }
  .sysadmin .blockers li::before {
    content: "";
    inline-size: 8px;
    block-size: 8px;
    background: var(--plate-ink-2);
    margin-block-start: 7px;
  }
  .sysadmin .blockers b { font-weight: 700; }
  .sysadmin .boundary {
    margin-block-start: var(--sp-5);
    padding: var(--sp-4);
    border: 1px solid var(--plate-rule);
    font-size: var(--t-sm);
    color: var(--plate-ink);
    max-inline-size: 72ch;
    text-wrap: pretty;
  }
  .sysadmin .instead { margin-block-start: var(--sp-5); }
  .sysadmin .queue-start { margin-block-start: var(--sp-6); }
}

@layer states {
  @media (max-width: 900px) {
    .sysadmin .sysread { grid-template-columns: minmax(0, 1fr); }
    .sysadmin .work { grid-template-columns: minmax(0, 1fr); }
    .sysadmin .nav { order: 2; }
    .sysadmin .sheet { order: 1; padding: var(--sp-5) var(--sp-4) var(--sp-6); }
    .sysadmin .plank table,
    .sysadmin .plank caption,
    .sysadmin .plank tbody,
    .sysadmin .plank tr,
    .sysadmin .plank th,
    .sysadmin .plank td { display: block; }
    .sysadmin .plank thead { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
    .sysadmin .plank tr { padding: var(--sp-3) 0; border-block-start: 1px solid var(--plate-rule); }
    .sysadmin .plank tbody tr:first-child { border-block-start: 0; }
    .sysadmin .plank th,
    .sysadmin .plank td { border-block-start: 0; padding: var(--sp-1) 0; }
    .sysadmin .plank td[data-lbl]::before {
      content: attr(data-lbl) " ";
      font-family: var(--f-lbl);
      font-size: var(--t-2xs);
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--plate-ink-2);
    }
    .sysadmin .plank td.rowacts { display: flex; align-items: baseline; gap: 0 var(--sp-4); }
    .sysadmin .proofline li { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); }
    .sysadmin .action-preview > div { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); }
  }
  @media (forced-colors: active) {
    .sysadmin .sysread > div,
    .sysadmin .plank,
    .sysadmin .proofline,
    .sysadmin .refusal,
    .sysadmin .boundary { border: 1px solid CanvasText; }
    .jst--done .jst__mk { forced-color-adjust: none; background: Highlight; border-color: Highlight; }
    .jst--waiting .jst__mk,
    .jst--stopped .jst__mk { border-color: CanvasText; }
    .sysadmin .blockers li::before { forced-color-adjust: none; background: CanvasText; }
  }
  @media (prefers-reduced-motion: reduce) {
    .sysadmin .go { transition: none; }
  }
  @media print {
    .sysadmin .rowacts,
    .sysadmin .theme-control,
    .sysadmin .queue-start { display: none; }
  }
}

/* Participant windows — accepted decision-186 board, production namespace. */
@layer components {
  .participant-windows .pw-readings {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-block: var(--sp-5);
    background: var(--edge-600);
  }
  .participant-windows .pw-readings > div {
    display: grid;
    gap: var(--sp-2);
    padding: var(--sp-4) var(--sp-5);
    background: var(--field-800);
  }
  .participant-windows .pw-readings span {
    color: var(--on-550);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }
  .participant-windows .pw-position {
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }
  .participant-windows .pw-readings strong {
    color: var(--on-900);
    font-family: var(--f-num);
    font-size: var(--t-2xl);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.05;
  }
  .participant-windows .pw-readings strong small,
  .participant-windows .pw-readings > div > small {
    color: var(--on-700);
    font-family: var(--f-ui);
    font-size: var(--t-sm);
    font-weight: 400;
    letter-spacing: normal;
  }
  .participant-windows .pw-list,
  .participant-windows .pw-confirm,
  .participant-windows .pw-revise,
  .participant-windows .pw-reminders { margin-block-start: var(--sp-5); }
  .participant-windows .pw-table { margin-block-start: var(--sp-4); border-block: 1px solid var(--plate-rule); overflow-x: auto; }
  .participant-windows .pw-table table,
  .participant-windows .pw-reminders table { inline-size: 100%; border-collapse: collapse; }
  .participant-windows .pw-table caption {
    max-inline-size: 68ch;
    padding-block-end: var(--sp-3);
    color: var(--plate-ink-2);
    font-size: var(--t-sm);
    text-align: start;
  }
  .participant-windows .pw-table th,
  .participant-windows .pw-table td,
  .participant-windows .pw-reminders th,
  .participant-windows .pw-reminders td {
    padding: var(--sp-3) var(--sp-4) var(--sp-3) 0;
    border-block-start: 1px solid var(--plate-rule);
    color: var(--plate-ink);
    font-size: var(--t-sm);
    text-align: start;
    vertical-align: top;
  }
  .participant-windows .pw-table thead th,
  .participant-windows .pw-reminders thead th {
    border-block-start: 0;
    color: var(--plate-ink-2);
    font-family: var(--f-lbl);
    font-size: var(--t-2xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .participant-windows .pw-callsign { color: var(--plate-ink); font-family: var(--f-num); font-size: var(--t-base); font-weight: 700; }
  .participant-windows .pw-callsign-none { color: var(--plate-ink-2); font-weight: 400; }
  .participant-windows .pw-callsign-none small { display: block; font-family: var(--f-num); font-size: var(--t-xs); }
  .participant-windows .pw-state { display: inline-flex; gap: var(--sp-2); align-items: baseline; color: var(--plate-ink-2); font-family: var(--f-lbl); font-size: var(--t-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
  .participant-windows .pw-state i { inline-size: 14px; block-size: 14px; flex: none; translate: 0 2px; }
  .participant-windows .pw-state--done { color: var(--teal-plate); }
  .participant-windows .pw-state--done i { border: 1px solid var(--teal-plate); background: var(--teal-plate); }
  .participant-windows .pw-state--waiting i { border: 2px dashed var(--plate-ink-2); }
  .participant-windows .pw-state--frozen i { border: 2px solid var(--plate-ink-2); background: linear-gradient(to bottom, transparent 4px, var(--plate-ink-2) 4px 6px, transparent 6px); }
  .participant-windows .pw-deadline { font-family: var(--f-num); white-space: nowrap; }
  .participant-windows .pw-deadline small { display: block; color: var(--plate-ink-2); font-family: var(--f-ui); font-size: var(--t-xs); white-space: normal; }
  .participant-windows .pw-row-action a,
  .participant-windows .pw-row-action span { display: inline-flex; align-items: center; min-block-size: var(--tap); }
  .participant-windows .pw-row-action a { color: var(--plate-ink); text-decoration-color: var(--plate-rule); text-underline-offset: 3px; }
  .participant-windows .pw-row-action span { color: var(--plate-ink-2); }
  .participant-windows .pw-reminders { border: 1px solid var(--plate-rule); }
  .participant-windows .pw-reminders > h3,
  .participant-windows .pw-reminders > p,
  .participant-windows .pw-reminders > form { padding-inline: var(--sp-4); }
  .participant-windows .pw-reminders > form { padding-block: var(--sp-4); border-block-start: 1px solid var(--plate-rule); }
  .participant-windows .pw-check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--sp-3); align-items: start; max-inline-size: 68ch; margin-block: var(--sp-4); color: var(--plate-ink); font-size: var(--t-sm); }
  .participant-windows .pw-check input { inline-size: 24px; block-size: 24px; accent-color: var(--teal-plate); }
  .participant-windows select { min-block-size: var(--tap); color: var(--plate-ink); font-family: var(--f-ui); font-size: var(--t-base); }
  .participant-windows .pw-preview,
  .participant-windows .pw-result dl { margin-block: var(--sp-4); border-block: 1px solid var(--plate-rule); }
  .participant-windows .pw-preview > div,
  .participant-windows .pw-result dl > div { display: grid; grid-template-columns: minmax(10rem, 0.35fr) minmax(0, 1fr); gap: var(--sp-4); padding-block: var(--sp-3); border-block-start: 1px solid var(--plate-rule); }
  .participant-windows .pw-preview > div:first-child,
  .participant-windows .pw-result dl > div:first-child { border-block-start: 0; }
  .participant-windows .pw-preview dt,
  .participant-windows .pw-result dt { color: var(--plate-ink-2); font-family: var(--f-lbl); font-size: var(--t-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
  .participant-windows .pw-actions { display: flex; flex-wrap: wrap; gap: var(--sp-4); align-items: center; justify-content: space-between; margin-block-start: var(--sp-5); }
  .participant-windows .pw-actions a { display: inline-flex; align-items: center; min-block-size: var(--tap); color: var(--plate-ink); }
  .participant-windows .pw-refusal,
  .participant-windows .pw-status,
  .participant-windows .pw-result,
  .participant-windows .pw-boundary,
  .participant-windows .pw-closed { max-inline-size: 72ch; margin-block: var(--sp-5); padding: var(--sp-4); border: 1px solid var(--plate-rule); color: var(--plate-ink); }
  /* Refusal, status and result sit on the field, not inside a plate, so they carry the plate
     ground themselves (Constant-Plate Rule): plate ink on the dark field measured 1.05:1. */
  .participant-windows .pw-refusal,
  .participant-windows .pw-status,
  .participant-windows .pw-result { background: var(--plate-100); border: 0; box-shadow: inset 0 0 0 1px var(--plate-rule), var(--plate-lift); }
  .participant-windows .pw-boundary {
    border-color: var(--edge-600);
    color: var(--on-900);
  }
  .participant-windows-rail .auth-rail__signout {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap);
  }
}
@media (max-width: 900px) {
  .participant-windows .pw-readings { grid-template-columns: minmax(0, 1fr); }
  .participant-windows .pw-table table,
  .participant-windows .pw-table caption,
  .participant-windows .pw-table tbody,
  .participant-windows .pw-table tr,
  .participant-windows .pw-table th,
  .participant-windows .pw-table td,
  .participant-windows .pw-reminders table,
  .participant-windows .pw-reminders thead,
  .participant-windows .pw-reminders tbody,
  .participant-windows .pw-reminders tr,
  .participant-windows .pw-reminders th,
  .participant-windows .pw-reminders td { display: block; }
  .participant-windows .pw-table thead,
  .participant-windows .pw-reminders thead { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
  .participant-windows .pw-table tr,
  .participant-windows .pw-reminders tr { padding-block: var(--sp-3); border-block-start: 1px solid var(--plate-rule); }
  .participant-windows .pw-table th,
  .participant-windows .pw-table td,
  .participant-windows .pw-reminders th,
  .participant-windows .pw-reminders td { padding: var(--sp-1) 0; border-block-start: 0; }
  .participant-windows .pw-table td[data-label]::before,
  .participant-windows .pw-reminders td[data-label]::before { content: attr(data-label) " "; color: var(--plate-ink-2); font-family: var(--f-lbl); font-size: var(--t-2xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
  .participant-windows .pw-preview > div,
  .participant-windows .pw-result dl > div { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); }
}
@media (forced-colors: active) {
  .participant-windows .pw-readings > div,
  .participant-windows .pw-table,
  .participant-windows .pw-reminders,
  .participant-windows .pw-refusal,
  .participant-windows .pw-status,
  .participant-windows .pw-result,
  .participant-windows .pw-boundary { border-color: CanvasText; }
  .participant-windows .pw-state--done i { forced-color-adjust: none; border-color: Highlight; background: Highlight; }
}
@media print {
  .participant-windows .pw-row-action,
  .participant-windows .pw-reminders form,
  .participant-windows .theme-control { display: none; }
}
