/* ===== PC向け：高密度テーブル（行クリックで詳細展開） ===== */
:root{
  --pt-ok:#1a7f37; --pt-ng:#b42318;
  --pt-bg:#f5f7fa; --pt-ink:#1f2328; --pt-mut:#5e6878;
  --pt-line:#d8dde6; --pt-accent:#0969da; --pt-head:#0b1220;
}
*{ box-sizing:border-box; }
body.pt-body{
  margin:0; background:var(--pt-bg); color:var(--pt-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;
  -webkit-text-size-adjust:100%;
}

/* ---- 上部バー（固定） ---- */
.pt-topbar{
  position:sticky; top:0; z-index:40;
  background:var(--pt-head); color:#e8edf5;
  padding:10px 20px; display:flex; flex-direction:column; gap:10px;
  box-shadow:0 2px 12px rgba(0,0,0,.25);
}
.pt-bar1{ display:flex; align-items:center; gap:14px; }
.pt-back{ color:#9fb0c8; text-decoration:none; font-size:14px; font-weight:700; white-space:nowrap; }
.pt-back:hover{ color:#fff; }
.pt-title{ font-size:17px; font-weight:800; margin:0; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; }
.pt-sub{ font-size:12px; color:#9fb0c8; white-space:nowrap; }
.pt-switch{ margin-left:auto; color:#fff; text-decoration:none; font-size:13px; font-weight:800;
  background:var(--pt-accent); padding:6px 14px; border-radius:999px; white-space:nowrap; }
.pt-switch:hover{ filter:brightness(1.1); }
.pt-tools{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pt-search{ flex:1 1 320px; min-width:200px; padding:8px 14px; font-size:14px;
  border:1px solid #2a3b58; border-radius:8px; background:#16233b; color:#e8edf5; }
.pt-search::placeholder{ color:#7d8ba4; }
.pt-search:focus{ outline:none; border-color:var(--pt-accent); background:#1c2c4a; }
.pt-filters{ display:flex; gap:6px; }
.pt-filt{ padding:7px 14px; font-size:13px; font-weight:700; cursor:pointer;
  border:1px solid #2a3b58; border-radius:999px; background:transparent; color:#cdd7e6; }
.pt-filt:hover{ border-color:#46587a; }
.pt-filt.active{ background:var(--pt-accent); color:#fff; border-color:var(--pt-accent); }
.pt-filt[data-f="ok"].active{ background:var(--pt-ok); border-color:var(--pt-ok); }
.pt-filt[data-f="ng"].active{ background:var(--pt-ng); border-color:var(--pt-ng); }
.pt-count{ font-size:13px; font-weight:700; color:#9fb0c8; white-space:nowrap;
  font-variant-numeric:tabular-nums; }
.pt-toggle{ margin-left:auto; padding:7px 14px; font-size:13px; font-weight:700; cursor:pointer;
  border:1px solid #2a3b58; border-radius:8px; background:transparent; color:#cdd7e6; }
.pt-toggle:hover{ border-color:#46587a; }

/* ---- テーブル ---- */
.pt-main{ max-width:1280px; margin:0 auto; padding:18px 20px 80px; }
/* overflow:hidden は付けない（スクロールコンテナ化して thead の sticky を壊すため） */
.pt-table{ width:100%; border-collapse:collapse; background:#fff;
  border:1px solid var(--pt-line); border-radius:12px;
  box-shadow:0 6px 22px rgba(20,30,50,.07); table-layout:fixed; }
.pt-table thead th:first-child{ border-top-left-radius:12px; }
.pt-table thead th:last-child{ border-top-right-radius:12px; }
.pt-table thead th{
  position:sticky; top:var(--pt-top,92px); z-index:20;
  background:#eef1f6; color:var(--pt-mut); font-size:12px; font-weight:800;
  text-align:left; padding:11px 14px; border-bottom:2px solid var(--pt-line);
  cursor:pointer; user-select:none; white-space:nowrap;
}
.pt-table thead th:hover{ background:#e4e9f1; }
.pt-table thead th.sorted-asc::after{ content:" ▲"; color:var(--pt-accent); }
.pt-table thead th.sorted-desc::after{ content:" ▼"; color:var(--pt-accent); }
.pt-c-num{ width:64px; }
.pt-c-st{ width:84px; }

.pt-row{ cursor:pointer; border-top:1px solid var(--pt-line); }
.pt-row:first-child{ border-top:0; }
.pt-row:hover{ background:#f3f7ff; }
.pt-row.open{ background:#eaf2ff; }
.pt-row>td{ padding:10px 14px; font-size:14px; vertical-align:top; }
.pt-num{ color:var(--pt-mut); font-variant-numeric:tabular-nums; font-weight:700; }
.pt-badge{ display:inline-block; font-size:12px; font-weight:800; padding:3px 11px;
  border-radius:999px; color:#fff; }
.pt-badge.ok{ background:var(--pt-ok); }
.pt-badge.ng{ background:var(--pt-ng); }
.pt-ttl{ display:flex; align-items:flex-start; gap:8px; justify-content:space-between; }
.pt-ttx{ word-break:break-word; overflow-wrap:anywhere; line-height:1.45; }
.pt-exp{ color:var(--pt-accent); font-size:12px; flex:0 0 auto; transition:transform .15s ease; margin-top:2px; }
.pt-row.open .pt-exp{ transform:rotate(180deg); }

.pt-detail>td{ padding:0; background:#fbfcfe; border-top:1px solid var(--pt-line); }
.pt-detail-in{ padding:18px 22px 22px; max-width:980px; }
.pt-empty{ display:none; text-align:center; color:var(--pt-mut); font-size:15px; padding:60px 24px; }

/* ---- 元データ由来コンテンツの調整（詳細内） ---- */
.pt-detail-in>.card,
.pt-detail-in>article,
.pt-detail-in>section,
.pt-detail-in>.entry,
.pt-detail-in .card,
.pt-detail-in article.card,
.pt-detail-in section.card,
.pt-detail-in article.entry{
  margin:0; border:0; border-radius:0; box-shadow:none; background:transparent;
  overflow:visible; padding:0;
}
.pt-detail-in .grid{ display:block !important; }
.pt-detail-in .panel{ border-right:0 !important; }
.pt-detail-in table{ width:auto; max-width:100%; }
.pt-detail-in th,.pt-detail-in td{ word-break:break-word; overflow-wrap:anywhere; }
.pt-detail-in code{ word-break:break-all; }
.pt-detail-in pre{ white-space:pre-wrap; word-break:break-word; overflow-x:auto;
  background:#0b1220; color:#e8edf5; padding:12px; border-radius:8px; }
.pt-detail-in a{ word-break:break-all; }
.pt-detail-in img{ max-width:100%; height:auto; }
.ap-info{ margin-bottom:8px; }
.ap-anl{ margin-top:10px; padding-top:12px; border-top:1px dashed var(--pt-line); }
.sd-aphead{ display:flex; align-items:center; gap:10px; margin-bottom:6px; }
