    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    .kikan_body {
      font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
      background: #f5f7fb;
      color: #1a2540;
    }


    .section-title    { font-size: 1.4rem; font-weight: 700; color: #1a2540; margin-bottom: 6px; }
    .section-subtitle { font-size: 0.9rem; color: #5a6787; margin-bottom: 24px; }

    /* ===== Notice ===== */
    .notice {
      display: flex; align-items: flex-start; gap: 10px;
      background: #fffde7; border: 1px solid #ffe082; border-radius: 8px;
      padding: 14px 18px; margin-bottom: 20px;
      font-size: 0.85rem; color: #7a5c00; line-height: 1.6;
    }

    /* ===== タブバー ===== */
    .tab-bar { display: flex; border-bottom: 2px solid #dce3f0; }
    .tab-btn {
      padding: 12px 28px;
      font-size: 0.92rem; font-weight: 600;
      color: #8a96aa; background: none; border: none;
      border-bottom: 3px solid transparent !important;
      margin-bottom: -2px;
      cursor: pointer; letter-spacing: 0.03em;
      transition: color 0.15s; white-space: nowrap;
    }
    .tab-btn:hover:not(.active) { color: #3a5fa0; }

    /* タブ別アクティブ色 */
    .tab-btn.active.kikan  { 
        border-bottom-color: #1e4b8f !important;
        color: #1e4b8f; }
    .tab-btn.active.kozo   { 
        border-bottom-color: #6a3d9a !important;
        color: #6a3d9a; }
    .tab-btn.active.shobo  { 
        border-bottom-color: #c0392b !important;
        color: #c0392b; }
    .tab-btn.active.normal  { 
        border-bottom-color: #808000 !important;
        color: #808000; }

    /* ===== パネル ===== */
    .tab-panel { display: none; }
    .tab-panel.active { display: block; }

    /* ===== テーブル共通 ===== */
    .table-wrapper {
      border-radius: 0 12px 12px 12px;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(0,0,0,0.08);
      border: 1px solid #dce3f0;
    }
    table { width: 100%; border-collapse: collapse; background: #fff; }

    /* ヘッダー色（タブ別） */
    .table-wrapper.kikan thead th  { background: #1e4b8f; }
    .table-wrapper.kikan thead th:first-child { background: #16396e; }
    .table-wrapper.kozo  thead th  { background: #5c3483; }
    .table-wrapper.kozo  thead th:first-child { background: #4f2d75; }
    .table-wrapper.shobo thead th  { background: #b03a2e; }
    .table-wrapper.shobo thead th:first-child { background: #922b21; }
    .table-wrapper.normal thead th  { background: #808000; }
    .table-wrapper.normal thead th:first-child { background: #808000; }

    thead th {
      color: #fff; font-size: 0.88rem; font-weight: 600;
      padding: 14px 20px; text-align: center; letter-spacing: 0.03em;
    }
    thead th:first-child { text-align: left; padding-left: 24px; }

    tbody tr { border-bottom: 1px solid #e8edf7; transition: background 0.15s; }
    tbody tr:last-child { border-bottom: none; }
    tbody tr:hover { background: #f0f4fc; }

    /* 区切り行 */
    tr.divider-row td {
      padding: 8px 24px 6px;
      font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em;
      border-top: 2px solid; border-bottom: 1px solid;
    }
    tr.divider-kikan  td { color: #1e4b8f; background: #e8f0fb; border-top-color: #93b4e0; border-bottom-color: #c5d5ef; }
    tr.divider-gyosei td { color: #00695c; background: #e0f2f1; border-top-color: #80cbc4; border-bottom-color: #b2dfdb; }
    tr.divider-kozo   td { color: #6a3d9a; background: #f3eefb; border-top-color: #c9aee8; border-bottom-color: #d8c4f0; }
    tr.divider-sho    td { color: #e65100; background: #fff3e0; border-top-color: #ffcc80; border-bottom-color: #ffe0b2; }
    tr.divider-normal    td { color: #6a3d9a; background: #f3eefb; border-top-color: #c9aee8; border-bottom-color: #d8c4f0; }

    /* データセル */
    td { padding: 14px 20px; font-size: 0.9rem; vertical-align: middle; }
    td.org-name { font-weight: 500; color: #1a2540; padding-left: 24px; }
    td.cell-status { text-align: center; min-width: 120px; }

    /* バッジ */
    .badge {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 4px 13px; border-radius: 20px;
      font-size: 0.82rem; font-weight: 600; line-height: 1;
    }
    .badge-ok   { background: #e6f4ea; color: #1b7a3c; border: 1px solid #b7dfc5; }
    .badge-ok::before { content: "✓ "; }
    .badge-none { background: #f4f5f7; color: #bcc3d0; border: 1px solid #e2e5ec; font-weight: 400; }

    /* 消防補足ボックス */
    .shobo-note-box {
      display: inline-flex; align-items: flex-start; gap: 8px;
      background: #fff; border: 1px solid #f1a9a0; border-radius: 8px;
      padding: 10px 16px; font-size: 0.82rem; color: #7a2e26; line-height: 1.7;
      max-width: 100%;
    }

    /* リンク */
    .org-link {
      color: #1e4b8f; text-decoration: none; font-weight: 600;
      border-bottom: 1px dashed #7a9fd4;
      transition: color 0.15s, border-color 0.15s;
    }
    .org-link:hover { color: #1565c0; border-bottom-color: #1565c0; }
    .org-link::after { content: " ↗"; font-size: 0.75em; opacity: 0.6; }

    /* Legend */
    .legend { display: flex; gap: 20px; margin-top: 16px; flex-wrap: wrap; align-items: center; }
    .legend-item { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; color: #5a6787; }

    /* ===== 検索バー ===== */
    .search-bar {
      display: flex; align-items: center; gap: 10px;
      background: #fff;
      border: 1px solid #dce3f0;
      border-radius: 8px;
      padding: 10px 16px;
      margin-bottom: 14px;
      box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    }
    .search-icon { font-size: 1rem; color: #8a96aa; flex-shrink: 0; }
    .search-input {
      flex: 1; border: none; outline: none;
      font-size: 0.92rem; color: #1a2540;
      font-family: inherit;
      background: transparent;
    }
    .search-input::placeholder { color: #b0bcc8; }
    .search-clear {
      background: none; border: none; cursor: pointer;
      color: #b0bcc8; font-size: 1.1rem; line-height: 1;
      padding: 0 2px; transition: color 0.15s; flex-shrink: 0;
      display: none;
    }
    .search-clear.visible { display: block; }
    .search-clear:hover { color: #5a6787; }
    .search-count {
      font-size: 0.78rem; color: #8a96aa;
      white-space: nowrap; flex-shrink: 0;
    }

    /* 検索ヒット強調 */
    .highlight { background: #fff59d; border-radius: 2px; }

    /* 検索結果なし行 */
    tr.no-result td {
      text-align: center; padding: 24px;
      color: #9aa3b5; font-size: 0.88rem;
    }

    @media (max-width: 640px) {
      td, th { padding: 10px; font-size: 0.82rem; }
      td.org-name { padding-left: 14px; }
      .tab-btn { padding: 10px 14px; font-size: 0.82rem; }
    }