body.diagnosis-is-open { overflow: hidden; }
.diagnosis-dialog {
  width: min(1120px, calc(100% - 2rem));
  height: min(920px, calc(100dvh - 2rem));
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  border: 1px solid var(--light);
  background: var(--bg);
  color: var(--fg);
  font: 400 0.8rem/1.65 'JetBrains Mono', monospace;
}
.diagnosis-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.diagnosis-print-copy { display: none; }
.diagnosis-dialog::backdrop { background: rgba(0, 0, 0, 0.82); backdrop-filter: blur(8px); }
.diagnosis-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--light);
}
.diagnosis-dialog-header h2 { margin: 0; font: 700 1.2rem/1.2 'Space Grotesk', sans-serif; }
.diagnosis-dialog-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.diagnosis-dialog button {
  padding: 0.65rem;
  border: 1px solid var(--light);
  background: var(--bg);
  color: var(--fg);
  font: 600 0.7rem 'JetBrains Mono', monospace;
  cursor: pointer;
}
.diagnosis-dialog button:disabled { opacity: 0.55; cursor: default; }
.diagnosis-dialog button:focus-visible,
.diagnosis-content:focus-visible { outline: 2px solid var(--fg); outline-offset: -3px; }
.diagnosis-content { min-height: 0; overflow: auto; padding: clamp(1rem, 3vw, 2rem); overscroll-behavior: contain; }
.diagnosis-status-message { margin: 1rem 0; color: var(--muted); }
.diagnosis-dialog .worksheet { color: var(--fg); }
.diagnosis-dialog .worksheet-intro { display: grid; grid-template-columns: 1.5fr 1fr; gap: 2rem; }
.diagnosis-dialog .kicker { display: flex; flex-wrap: wrap; gap: 1rem; color: var(--muted); font-size: 0.65rem; }
.diagnosis-dialog .worksheet-intro h3 {
  margin: 1.25rem 0;
  font: 700 clamp(1.8rem, 4vw, 3.5rem)/1 'Space Grotesk', sans-serif;
}
.diagnosis-dialog .intro-subtitle,
.diagnosis-dialog .terminal-list,
.diagnosis-dialog .matrix-zone small { color: var(--muted); }
.diagnosis-dialog .diagnosis-message { margin-top: 1rem; }
.diagnosis-dialog .diagnosis-message > span,
.diagnosis-dialog .terminal-command { font-weight: 700; }
.diagnosis-dialog .intro-terminal { align-self: start; border: 1px solid var(--light); padding: 1rem; }
.diagnosis-dialog .terminal-bar { border-bottom: 1px solid var(--light); padding-bottom: 0.75rem; }
.diagnosis-dialog .terminal-list { margin: 0.75rem 0; font-size: 0.68rem; }
.diagnosis-dialog .terminal-list > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; }
.diagnosis-dialog dd { margin: 0; }
.diagnosis-dialog .diagnosis-strip { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 1.5rem; border: 1px solid var(--light); }
.diagnosis-dialog .diagnosis-strip > div { padding: 0.75rem; }
.diagnosis-dialog .diagnosis-strip span { display: block; color: var(--muted); font-size: 0.65rem; }
.diagnosis-dialog .sheet-section { margin-top: 1.5rem; border: 1px solid var(--light); padding: 1rem; }
.diagnosis-dialog .section-head { display: flex; align-items: baseline; gap: 0.75rem; margin-bottom: 1rem; }
.diagnosis-dialog .section-head > span { color: var(--muted); }
.diagnosis-dialog .section-head h4 { margin: 0; font-size: 0.8rem; overflow-wrap: anywhere; }
.diagnosis-dialog .detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.diagnosis-dialog label { display: block; margin-top: 0.75rem; color: var(--muted); }
.diagnosis-dialog label > span { display: block; height: 1.75rem; border-bottom: 1px solid var(--muted); }
.diagnosis-dialog .protocol ol { padding: 0; list-style: none; }
.diagnosis-dialog .protocol li { display: flex; gap: 1rem; margin: 0.65rem 0; }
.diagnosis-dialog .matrix-row { display: grid; grid-template-columns: 3rem 1fr 1.5fr 1.5fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--light); }
.diagnosis-dialog .matrix-mark { display: flex; align-items: baseline; gap: 0.5rem; }
.diagnosis-dialog .matrix-zone small,
.diagnosis-dialog .cell-label { display: block; }
.diagnosis-dialog .cell-label { font-size: 0.65rem; color: var(--muted); margin-bottom: 0.5rem; }
.diagnosis-dialog .box { display: inline-block; width: 0.8rem; height: 0.8rem; border: 1px solid var(--muted); flex: 0 0 auto; }
.diagnosis-dialog .decision-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.diagnosis-dialog .check-list { list-style: none; padding: 0; }
.diagnosis-dialog .check-list li { display: flex; align-items: baseline; gap: 0.65rem; margin: 0.75rem 0; }
.diagnosis-dialog .notes-lines > span { display: block; height: 2rem; border-bottom: 1px solid var(--light); }
.diagnosis-dialog .sheet-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; padding: 0; border: 0; background: none; color: var(--muted); font-size: 0.65rem; }
@media (max-width: 768px) {
  .diagnosis-dialog { width: 100%; height: 100dvh; border: 0; }
  .diagnosis-dialog-header { padding: 0.75rem 1rem; }
  .diagnosis-dialog-header h2 { font-size: 1rem; }
  .diagnosis-dialog .worksheet-intro,
  .diagnosis-dialog .decision-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .diagnosis-dialog .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diagnosis-dialog .diagnosis-strip { grid-template-columns: minmax(0, 1fr); }
  .diagnosis-dialog .matrix-row { grid-template-columns: 2.5rem minmax(0, 1fr); }
  .diagnosis-dialog .matrix-observation,
  .diagnosis-dialog .matrix-fix { grid-column: 1 / -1; }
}
@media print {
  body.diagnosis-is-open > :not(.diagnosis-print-copy) { display: none !important; }
  body.diagnosis-is-open { overflow: visible; background: white; }
  .diagnosis-print-copy {
    display: block;
    position: static;
    width: 100%;
    height: auto;
    margin: 0;
    border: 0;
    --bg: white;
    --fg: black;
    --muted: #333;
    --light: #999;
  }
  .diagnosis-dialog::backdrop { background: none; }
  .diagnosis-dialog-header { display: none; }
  .diagnosis-content { overflow: visible; padding: 0; }
  .diagnosis-dialog .sheet-section { break-inside: avoid; }
}
