.sheet { font-size: 14px; line-height: 1.55; color: #1b1f24; }
.sheet h2, .sheet h3, .sheet h4, .sheet p, .sheet ul, .sheet ol { margin: 0; }
.sheet ul, .sheet ol { padding-left: 1.3em; }
.sheet li { margin: 2px 0; }
.sheet-meta { font-size: 0.85em; color: #4a5560; }
.sheet-title { font-size: 1.3em; margin-top: 2px; }
.sheet-summary { margin-top: 2px; }
.sheet-label { margin-top: 4px; font-size: 0.78em; color: #5b6670; letter-spacing: 0.02em; }
.sheet-levels dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 3px 8px; }
.sheet-levels dt { font-weight: 700; }
.sheet-levels dd { margin: 0; }
.sheet-sec { margin-top: 14px; }
.sheet-sec h3 { font-size: 1.05em; border-bottom: 1px solid #c7cdd3; padding-bottom: 2px; margin-bottom: 6px; }
.sheet-sub { margin-top: 8px; }
.sheet-sub h4 { font-size: 0.95em; }
.sheet-note, .sheet-empty { color: #5b6670; font-size: 0.88em; }
.sheet-empty { font-size: 0.95em; }
.sheet-checklist { list-style: none; padding-left: 0; }
.sheet-box { font-size: 1.1em; }
.sheet-recommended .sheet-link, .sheet-recommended li { color: #5b6670; }
.sheet-tag { font-size: 0.8em; border: 1px solid #98a2ac; border-radius: 3px; padding: 0 3px; }
.sheet-link { font: inherit; color: #0b57b0; background: none; border: 0; padding: 0; text-align: left; cursor: pointer; text-decoration: underline; }
.sheet-link:hover { color: #083e80; }
.sheet-link:focus-visible { outline: 2px solid #0b57b0; outline-offset: 2px; }
.sheet-foot { margin-top: 16px; padding-top: 8px; border-top: 1px solid #c7cdd3; font-size: 0.8em; color: #5b6670; }

@page { size: A4 portrait; margin: 12mm; }
@media print {
  /* 시트는 레이아웃 안쪽에 중첩되어 있다. 시트 밖 내용은 display:none으로 흐름에서 빼고,
     시트의 조상은 여백·위치·격자를 풀어 시트가 쪽의 맨 위에서 시작하게 한다. */
  body *:not(:has(.sheet)):not(.sheet):not(.sheet *) { display: none !important; }
  html, body, :has(.sheet):not(.sheet) {
    display: block !important; position: static !important; float: none !important;
    margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important;
    width: auto !important; height: auto !important; min-height: 0 !important; max-height: none !important;
    overflow: visible !important; background: none !important; transform: none !important;
  }
  .sheet { font-size: 10.5pt; line-height: 1.45; color: #000; }
  .sheet--long { font-size: 9.5pt; line-height: 1.35; }
  .sheet li { break-inside: avoid; }
  .sheet-sec { margin-top: 8pt; }
  .sheet-meta, .sheet-note, .sheet-foot, .sheet-empty, .sheet-recommended li { color: #000; }
  .sheet-link, .sheet-link:hover { color: inherit; text-decoration: none; background: none; border: 0; padding: 0; font: inherit; cursor: auto; }
  .sheet-foot { font-size: 8.5pt; }
}
