:root { --bg-deep:#E6F1FB; --bg-surface:#FFFFFF; --accent:#2F80D0; --accent-dim:rgba(47,128,208,.22); --text-primary:#1F3A5F; --text-secondary:#6B86A3; }
  * { box-sizing: border-box; }
  body { margin:0; background:var(--bg-deep); color:var(--text-primary); font-family:'Noto Sans JP','Hiragino Sans',sans-serif; line-height:1.8; }
  header { background:rgba(255,255,255,.9); border-bottom:1px solid var(--accent-dim); }
  .bar { display:flex; align-items:center; gap:16px; padding:12px 20px; max-width:980px; margin:0 auto; flex-wrap:wrap; }
  .brand { color:inherit; text-decoration:none; display:flex; align-items:center; gap:8px; white-space:nowrap; font-weight:600; font-size:17px; }
  .bar nav { display:flex; gap:14px; font-size:13px; flex-wrap:wrap; }
  .bar nav a { color:var(--accent); text-decoration:none; }
  .bar nav a:hover { text-decoration:underline; }
  .bar nav span { color:var(--text-secondary); }
  main { max-width:720px; margin:24px auto 64px; padding:0 20px; }
  .card { background:var(--bg-surface); border:1px solid var(--accent-dim); border-radius:12px; padding:24px 28px; box-shadow:0 4px 16px rgba(31,70,120,.08); }
  .card + .card { margin-top:16px; }
  nav.crumb { font-size:12px; color:var(--text-secondary); margin:0 0 12px; }
  nav.crumb a { color:var(--accent); text-decoration:none; }
  h1 { font-size:22px; margin:0 0 4px; line-height:1.4; }
  .lead { color:var(--text-secondary); font-size:13px; margin:0 0 20px; }
  h2 { font-size:16px; margin:28px 0 8px; color:var(--accent); }
  h3 { font-size:14px; margin:20px 0 6px; }
  p { margin:0 0 12px; font-size:14px; }
  a { color:var(--accent); }
  ul, ol { margin:0 0 12px; padding-left:20px; font-size:14px; }
  .table-wrap { overflow-x:auto; margin:0 0 12px; }
  table { border-collapse:collapse; width:100%; min-width:420px; font-size:13px; font-variant-numeric:tabular-nums; }
  th, td { padding:6px 10px; text-align:right; border-bottom:1px solid var(--accent-dim); }
  th:first-child, td:first-child { text-align:left; white-space:nowrap; }
  thead th { color:var(--text-secondary); font-weight:600; font-size:12px; }
  tbody tr:hover { background:rgba(47,128,208,.04); }
  td.w { text-align:center; }
  .cta { display:inline-block; margin:8px 0 4px; padding:10px 18px; background:var(--accent); color:#fff; border-radius:8px; text-decoration:none; font-size:14px; font-weight:600; }
  .note { font-size:12px; color:var(--text-secondary); background:rgba(47,128,208,.06); border-radius:8px; padding:10px 14px; margin-top:20px; }
  .area-list { columns:2; column-gap:20px; list-style:none; padding:0; }
  .area-list li { break-inside:avoid; margin-bottom:2px; }
  .area-list a { text-decoration:none; }
  .area-list a:hover { text-decoration:underline; }
  .chips { display:flex; flex-wrap:wrap; gap:6px; list-style:none; padding:0; margin:0 0 12px; font-size:13px; }
  .chips a, .chips span { display:block; padding:4px 11px; border:1px solid var(--accent-dim); border-radius:999px; text-decoration:none; background:rgba(47,128,208,.04); }
  .chips span { color:var(--text-secondary); background:none; }
  .chips a:hover { background:rgba(47,128,208,.12); }
  .pager { display:flex; justify-content:space-between; gap:12px; font-size:13px; margin:20px 0 0; }
  .pager a { text-decoration:none; }
  footer { border-top:1px solid var(--accent-dim); background:rgba(255,255,255,.6); font-size:12px; color:var(--text-secondary); }
  @media (max-width:480px) {
    .card { padding:20px 16px; } .area-list { columns:1; } table { min-width:0; } th, td { padding:6px 4px; }
    .bar { gap:10px; padding:10px 16px; } main { padding:0 14px; }
  }