
:root {
        --tag-border: #fed7aa;
      }
      html[data-diagram-theme="dark"] {
        --tag-border: #334155;
      }
      * { box-sizing: border-box; }
      .diagram,
      .diagram * {
        max-width: 100%;
      }
      html,
      body {
        margin: 0;
        padding: 0;
        overflow: hidden;
        background: transparent;
      }
      body {
        color: var(--ink);
        font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", sans-serif;
      }
      .diagram {
        width: 100%;
        max-width: 960px;
        margin: 0 auto;
        border: 1px solid var(--line);
        border-radius:8px;
        overflow: hidden;
        background: var(--paper);
        contain: layout paint;
      }
      .os-ch3-ch3-2-root {
        padding: 16px;
        overflow-wrap: anywhere;
      }
      h1 {
        margin: 10px 0 8px;
        color: var(--ink);
        font-size:24px;
        line-height: 1.25;
        letter-spacing: 0;
      }
      p {
        margin: 0;
        color: var(--muted);
        font-size:14px;
        line-height: 1.62;
      }
      .os-ch3-ch3-2-flow {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr);
        align-items: stretch;
        gap: 8px;
        margin-top: 14px;
      }
      .os-ch3-ch3-2-step {
        min-width: 0;
        border: 1px solid var(--line);
        border-radius:8px;
        padding: 10px;
        background: var(--panel);
      }
      .os-ch3-ch3-2-step span {
        display: block;
        color: var(--accent);
        font-size:12px;
        font-weight: 800;
        line-height: 1.3;
      }
      .os-ch3-ch3-2-step strong {
        display: block;
        margin-top: 5px;
        color: var(--ink);
        font-size:15px;
        line-height: 1.35;
      }
      .os-ch3-ch3-2-step em {
        display: block;
        margin-top: 4px;
        color: var(--muted);
        font-size:12px;
        font-style: normal;
        line-height: 1.45;
      }
      .os-ch3-ch3-2-arrow {
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--track-strong);
        font-size:18px;
        font-weight: 800;
      }
      .os-ch3-ch3-2-matrix {
        margin-top: 10px;
        overflow: hidden;
        border: 1px solid var(--line);
        border-radius:8px;
      }
      .os-ch3-ch3-2-row {
        display: grid;
        grid-template-columns: 120px 1fr 1fr;
      }
      .os-ch3-ch3-2-row > div {
        min-width: 0;
        padding: 9px 10px;
        border-top: 1px solid var(--line);
        border-left: 1px solid var(--line);
        color: var(--muted);
        font-size:13px;
        line-height: 1.48;
      }
      .os-ch3-ch3-2-row > div:first-child {
        border-left: 0;
        color: var(--accent);
        font-weight: 800;
      }
      .os-ch3-ch3-2-head > div {
        border-top: 0;
        background: var(--head);
        color: var(--ink);
        font-weight: 800;
      }
      .os-ch3-ch3-2-note {
        margin-top: 10px;
        border: 1px solid var(--line);
        border-radius:8px;
        padding: 10px 12px;
        background: var(--panel);
        color: var(--muted);
        font-size:13px;
        line-height: 1.58;
      }
      .os-ch3-ch3-2-note b {
        color: var(--accent);
      }
      @media (max-width: 640px) {
        .os-ch3-ch3-2-root { padding: 13px; }
        h1 { font-size:21px; line-height: 1.28; }
        p { font-size:13px; line-height: 1.58; }
        .os-ch3-ch3-2-flow {
          grid-template-columns: 1fr;
          gap: 6px;
        }
        .os-ch3-ch3-2-arrow {
          min-height: 14px;
          transform: rotate(90deg);
          font-size:15px;
        }
        .os-ch3-ch3-2-step { padding: 9px; }
        .os-ch3-ch3-2-row { grid-template-columns: 96px 1fr 1fr; }
        .os-ch3-ch3-2-row > div { padding: 8px 7px; font-size:12px; line-height: 1.45; }
      }
      @media (max-width: 360px) {
        .os-ch3-ch3-2-root { padding: 10px; }
        h1 { font-size:19px; }
        .os-ch3-ch3-2-row { grid-template-columns: 88px 1fr 1fr; }
        .os-ch3-ch3-2-row > div { padding: 7px 4px; font-size:12px; }
      }

/* ch3-2 mobile matrix cards */
@media (max-width: 640px) {
  .os-ch3-ch3-2-matrix {
    display: grid !important;
    gap: 8px !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  .os-ch3-ch3-2-head {
    display: none !important;
  }

  .os-ch3-ch3-2-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 7px 10px !important;
    padding: 10px !important;
    border: 1px solid var(--vs2-line) !important;
    border-radius: 8px !important;
    background: var(--vs2-paper) !important;
  }

  .os-ch3-ch3-2-row > div {
    padding: 0 !important;
    border: 0 !important;
    color: var(--vs2-muted) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .os-ch3-ch3-2-row > div:first-child {
    grid-column: 1 / -1 !important;
    color: var(--vs2-track) !important;
    font-size: 14px !important;
    font-weight: 850 !important;
  }

  .os-ch3-ch3-2-row > div::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    color: var(--vs2-track);
    font-size:12px;
    font-weight: 850;
    line-height: 1.2;
  }

  .os-ch3-ch3-2-row > div:first-child::before {
    display: none !important;
  }

  .os-ch3-ch3-2-row.os-ch3-ch3-2-head {
    display: none !important;
  }
}
