/* 行政。style.css・flow.css・fm.css の上に重ねる（接頭辞 pb-） */
.pb-lead { margin: 0 0 8px; font-size: 13px; color: var(--ink2); }
.pb-note { margin: 8px 0 0; font-size: 12.5px; color: var(--ink2); background: var(--line2); border-radius: 8px; padding: 6px 10px; }
.pb-judge { margin: 8px 0 0; font-size: 13px; font-weight: 700; border-radius: 8px; padding: 7px 10px; }
.pb-judge.ok { background: #f0fdf4; color: #14532d; }
.pb-judge.ng { background: #fef2f2; color: #7f1d1d; }
.pb-judge.mid { background: #fffbeb; color: #78350f; }

/* 国と自治体のシステムの全体 */
.pb-map { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: stretch; }
.pb-side { background: var(--line2); border-radius: 14px; padding: 10px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pb-side.link { background: #f5f3ff; }
.pb-sideh { margin: 0; font-size: 12px; font-weight: 700; color: var(--muted); }
.pb-sbtns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.pb-sbtn { appearance: none; font: inherit; text-align: left; cursor: pointer; border: 1px solid var(--line); background: var(--paper); border-radius: 10px; padding: 8px 10px; color: var(--ink); display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pb-sbtn b { font-size: 13.5px; }
.pb-sbtn small { font-size: 11.5px; color: var(--muted); }
.pb-sbtn:hover { border-color: #94a3b8; }
.pb-sbtn[aria-pressed="true"] { background: #0f172a; border-color: #0f172a; color: #fff; }
.pb-sbtn[aria-pressed="true"] small { color: #cbd5e1; }
.pb-info { padding: 12px 16px; margin-top: 10px; }
.pb-info h3 { margin: 0 0 8px; font-size: 16px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.pb-info h3 small { font-size: 12px; font-weight: 500; color: var(--muted); }
.pb-dl { margin: 0; display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 6px 12px; font-size: 13.5px; }
.pb-dl dt { font-size: 12px; font-weight: 700; color: var(--muted); padding-top: 2px; }
.pb-dl dd { margin: 0; color: var(--ink2); }

/* 練習: 使ってよい？ */
.pb-quiz { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pb-q { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pb-q > p:first-child { margin: 0; font-size: 13.5px; color: var(--ink); }
.pb-q.ok { border-color: #86efac; }
.pb-q.ng { border-color: #fca5a5; }
.pb-two { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pb-two button { appearance: none; font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; border: 1px solid var(--line); background: var(--paper); border-radius: 10px; padding: 7px 8px; color: var(--ink2); }
.pb-two button:hover { border-color: #94a3b8; }
.pb-two button[aria-pressed="true"] { background: #0f172a; border-color: #0f172a; color: #fff; }
.pb-fb { margin: 0; font-size: 12.5px; border-radius: 8px; padding: 6px 10px; background: var(--line2); color: var(--ink2); }
.pb-fb .srcl { display: block; margin-top: 4px; font-size: 11.5px; }
.pb-q.ok .pb-fb { background: #f0fdf4; color: #14532d; }
.pb-q.ng .pb-fb { background: #fef2f2; color: #7f1d1d; }
.pb-score { margin: 8px 0 0; font-size: 13px; font-weight: 700; color: var(--ink2); }

/* 標準化 */
.pb-delay th { font-weight: 500; }
.pb-delay td.n, .pb-delay th.n { text-align: right; font-family: var(--latin); white-space: nowrap; }
.pb-delay thead th.n { font-family: var(--sans); white-space: normal; }
.pb-delay tfoot th, .pb-delay tfoot td { font-weight: 700; border-top: 1px solid var(--line); border-bottom: 0; }
.pb-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 8px; }
.pb-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ink2); }
.pb-chip i { width: 10px; height: 10px; border-radius: 3px; background: var(--mc); }
.pb-chip small { font-family: var(--latin); color: var(--muted); }
.m-soumu { --mc: #0d9488; }
.m-moj { --mc: #7c3aed; }
.m-cfa { --mc: #d97706; }
.m-mhlw { --mc: #2563eb; }
.m-mext { --mc: #db2777; }
.pb-biz { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.pb-bbtn { appearance: none; font: inherit; font-size: 13px; font-weight: 700; text-align: left; cursor: pointer; border: 1px solid var(--line); border-left: 4px solid var(--mc); background: var(--paper); border-radius: 10px; padding: 7px 10px; color: var(--ink); display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.pb-bbtn small { font: 600 11px var(--latin); color: var(--muted); flex: none; }
.pb-bbtn:hover { border-color: #94a3b8; border-left-color: var(--mc); }
.pb-bbtn[aria-pressed="true"] { background: #0f172a; border-color: #0f172a; border-left-color: var(--mc); color: #fff; }
.pb-bbtn[aria-pressed="true"] small { color: #cbd5e1; }

/* 日付の計算 */
.pb-calc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: start; }
.pb-box { padding: 12px 14px; min-width: 0; }
.pb-box > h3 { margin: 0 0 8px; font-size: 15px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.pb-box .pills + .pills { margin-top: 6px; }
.pb-kind { padding-top: 6px; border-top: 1px dashed var(--line); }
.pb-fields { display: grid; gap: 8px; margin-top: 10px; }
.pb-fields label, .pb-ymd label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; font-weight: 700; color: var(--ink2); min-width: 0; }
.pb-fields input, .pb-ymd input { font: inherit; font-size: 15px; font-weight: 500; color: var(--ink); background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 9px; padding: 6px 9px; min-width: 0; width: 100%; box-sizing: border-box; }
.pb-wareki { display: grid; gap: 6px; padding-top: 8px; border-top: 1px dashed var(--line); }
.pb-flbl { font-size: 12px; font-weight: 700; color: var(--ink2); }
.pb-ymd { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pb-out { margin-top: 10px; }
.pb-wt th { font-size: 12.5px; white-space: nowrap; width: 9em; }
.pb-wt td { font-size: 13px; color: var(--ink2); }
.pb-wt td small { display: block; font-size: 11.5px; color: var(--muted); }
.pb-big { font-size: 17px; color: #1d4ed8; }
.pb-big2 { margin: 10px 0 0; font: 700 22px var(--sans); color: #1d4ed8; }

/* データの形 */
.pb-tbl dl { margin: 6px 0 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 10px; font-size: 12.5px; }
.pb-tbl dt { font: 600 12px var(--latin); color: var(--ink); overflow-wrap: anywhere; }
.pb-tbl dd { margin: 0; color: var(--ink2); }
#pbDataNotes { margin-top: 10px; }

.pb-sbtn:focus-visible, .pb-two button:focus-visible, .pb-bbtn:focus-visible, .pb-fields input:focus-visible, .pb-ymd input:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
@media (max-width: 1100px) {
  .pb-map { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pb-side.front { grid-column: 1 / -1; }
  .pb-biz { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pb-calc { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .pb-map, .pb-quiz { grid-template-columns: minmax(0, 1fr); }
  .pb-side.front { grid-column: auto; }
  .pb-dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .pb-dl dd { margin-bottom: 6px; }
  .pb-biz { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pb-two { grid-template-columns: minmax(0, 1fr); }
  .pb-wt th { width: auto; white-space: normal; }
}
