@charset "UTF-8";
/* CSS Document */



  :root {
    --navy: #1a3a5c;
    --blue-mid: #2a5a8c;
    --blue-light: #d6e8f7;
    --blue-header: #3a6ea8;
    --gray-bg: #f5f7fa;
    --gray-border: #c8d4e0;
    --gray-row: #eaf1f8;
    --text-main: #1a1a2e;
    --text-sub: #444;
    --accent-check: #1a5c9a;
    --white: #fff;
    --green-comply: #2d6a4f;
    --orange-recommend: #8b5e00;
    --section-header-bg: #2a5a8c;
    --sub-header-bg: #e8f0f8;
    --row-alt: #f0f5fb;
  }
  /* ===== HEADER ===== */
  .doc-header {
    background: var(--navy);
    color: var(--white);
    padding: 18px 24px 14px;
    border-bottom: 4px solid var(--blue-header);
  }

  .doc-header .doc-label {
    color: #aac8e8;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
  }

  .doc-header h1 {
    font-family: 'Noto Serif JP', serif;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.4;
  }

  .doc-header .subtitle {
    color: #aac8e8;
    margin-top: 6px;
  }

  .meta-row {
    display: flex;
    gap: 32px;
    padding: 10px 24px;
    background: var(--sub-header-bg);
    border-bottom: 1px solid var(--gray-border);
    color: var(--text-sub);
  }

  .meta-row .meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .meta-row .meta-label {
    font-weight: 700;
    color: var(--navy);
  }

  .meta-row input[type="text"] {
    border: none;
    border-bottom: 1px solid var(--gray-border);
    padding: 2px 6px;
    font-size: 12px;
    font-family: inherit;
    color: var(--text-main);
    background: transparent;
    outline: none;
    min-width: 120px;
  }

  /* ===== SECTION HEADERS ===== */
  .section-block {
    border-bottom: 1px solid var(--gray-border);
  }

  .section-title {
    background: var(--section-header-bg);
    color: var(--white);
    font-weight: 700;
    padding: 8px 24px;
    letter-spacing: 0.04em;
  }

  .sub-section-title {
    background: var(--sub-header-bg);
    color: var(--navy);
    font-weight: 700;
      margin: -8px -10px;
    padding: 7px 10px;
    border-top: 1px solid var(--gray-border);
    letter-spacing: 0.03em;
  }
  .sub-section-title_min {
    background: var(--sub-header-bg);
    color: var(--navy);
    font-weight: 700;
      margin: -8px -10px;
    padding: 7px 10px 7px 32px;
    letter-spacing: 0.03em;
  }

  .special-case-title {
    color: #5c3a00;
    font-weight: 700;
    padding: 6px 0;
  }

  /* ===== TABLE ===== */
  .checklist-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
      
  }

  .checklist-table colgroup col:nth-child(1) { width: auto; }
  .checklist-table colgroup col:nth-child(2) { width: 72px; }
  .checklist-table colgroup col:nth-child(3) { width: 220px; }

  .table-header-row th {
    background: #34526e;
    color: var(--white);
      font-size: 10px;
    font-weight: 700;
    padding: 7px 10px;
    text-align: center;
    border: 1px solid #2a4560;
    letter-spacing: 0.05em;
  }

  .table-header-row th:first-child {
    text-align: left;
  }

  .checklist-table td {
    vertical-align: top;
    padding: 8px 10px;
    border-left: 1px solid var(--gray-border);
    border-right: 1px solid var(--gray-border);
    border-bottom: 1px solid var(--gray-border);
    line-height: 1.65;
  }
.checklist-table .dotted td {
  border-bottom: 1px dashed var(--gray-border);
}

  .checklist-table tr:nth-child(even) td {
    background: var(--row-alt);
  }

  .checklist-table tr:nth-child(odd) td {
    background: var(--white);
  }

  /* item text column */
  .col-item {
    color: var(--text-main);
  }


  .item-num {
    font-weight: 700;
    color: var(--navy);
    margin-right: 4px;
  }

  .item-text {
    display: inline;
  }

  /* comply/recommend column */
  .col-status {
    text-align: center;
    vertical-align: middle;
  }

  .checkbox-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }

  .check-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
      font-size: 12px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 3px;
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    background: #f0f0f0;
    color: #a8a8a8;
    border: 1px solid #b3b3b3;
  }

  .check-badge.comply {
    background: #e6f4ec;
    color: var(--green-comply);
    border: 1px solid #a8d5b5;
  }

  .check-badge.recommend {
    background: #fdf3e3;
    color: var(--orange-recommend);
    border: 1px solid #e0c070;
  }

  /* notes column */
  .col-notes {
    color: var(--text-sub);
    line-height: 1.6;
  }

  .note-item {
    font-size: 85%;
    margin-bottom: 4px;
    padding-left: 10px;
    text-indent: -10px;
  }

  .note-item::before {
    content: "• ";
    color: var(--blue-mid);
  }
  .note-item.kome::before {
    content: "※";
    color: var(--blue-mid);
  }

  .note-link {
    color: var(--blue-mid);
    word-break: break-all;
    text-decoration: underline;
  }

  .note-check-item {
    font-size: 85%;
    display: flex;
    align-items: flex-start;
    gap: 4px;
    margin-bottom: 2px;
      margin-left: 12px;
  }

  .note-check-item::before {
    content: "✔";
    color: var(--blue-mid);
    flex-shrink: 0;
    margin-top: 1px;
  }

  /* bullet sub-list in item text */
  .item-bullets {
    margin: 4px 0 4px 14px;
    list-style: none;
  }

  .item-bullets li {
    padding-left: 10px;
    text-indent: -10px;
    margin-bottom: 2px;
  }

  .item-bullets li::before {
    content: "・";
    color: var(--navy);
  }

  /* page number */
  .page-num {
    text-align: center;
    color: #888;
    padding: 10px;
  }

  /* indented sub-rows */
  .row-indent td.col-item {
    padding-left: 28px;
  }

  /* special case sub-rows */
  .row-special .col-item {
    padding-left: 14px;
  }



@media screen and (max-width:640px){
    
* { box-sizing: border-box; margin: 0; padding: 0; }
    .doc-header { padding: 14px 14px 10px; }
    .doc-header h1 { }
    .meta-row { flex-direction: column; gap: 8px; padding: 8px 14px; }
    .meta-row input[type="text"] { min-width: 80px; }
    .section-title {  padding: 7px 14px; }
    .sub-section-title { padding: 6px 14px; }
  .sub-section-title_min {padding: 6px 10px 6px 22px;  }
    .special-case-title { padding: 5px 0; }

    /* Stack table on mobile */
    .checklist-table, .checklist-table tbody,
    .checklist-table tr, .checklist-table td,
    .checklist-table thead, .checklist-table th {
      display: block;
      width: 100%;
    }

    .table-header-row { display: none; }

    .checklist-table td {
      border: none;
      border-bottom: 1px solid #dde8f0;
      padding: 7px 10px;
    }
    
    .checklist-table td.nsp{
        display: none;
    }

    .checklist-table tr {
      border: 1px solid var(--gray-border);
      border-radius: 4px;
      margin: 0;
      background: var(--white);
      box-shadow: 0 1px 4px rgba(30,60,100,0.06);
    }

    .checklist-table tr:nth-child(even),
    .checklist-table tr:nth-child(odd) {
      background: var(--white);
    }

    .col-status {
      text-align: left;
      background: var(--sub-header-bg);
      border-top: 1px solid var(--gray-border);
    }

    .checkbox-group { flex-direction: row; justify-content: flex-start; }

    .col-notes {
      background: #f9fbfd;
      border-top: 1px dashed var(--gray-border);
    }

    .row-indent td.col-item,.row-indent td.col-status,.row-indent td.col-notes { padding-left: 22px; }
    
    
}