/* app.css ── メディル 第1版の見た目（A18 §6） */
:root{
  --sumi:#10151B;        /* 墨：文字・罫線・グラフの既定 */
  --ao:#0B6E77;          /* 青緑：主役1つだけ（A113 2-1：灰の地の上でも対比 4.5 以上になる濃さ。図の塗りは chart.js の #0E7C86） */
  --ao-dark:#3FB3BF;     /* 暗い背景での主役 */
  --bg:#FFFFFF;
  --bg2:#F6F7F8;
  --line:#D8DCE0;
  --muted:#5B6570;
  --w:min(1040px, 100% - 32px);   /* スマホ幅で横スクロールを出さない */
  --mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Noto Sans Mono", monospace;
}
*{box-sizing:border-box}
html{ -webkit-text-size-adjust:100% }
body{
  margin:0; background:var(--bg); color:var(--sumi);
  font:16px/1.75 "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif;
  font-feature-settings:"palt" 1;
}
a{color:var(--ao)}
a:hover{text-decoration:none}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--bg);padding:8px;z-index:10}

/* 見出し ─ 結論を書かない（A18 §5-3） */
h1{font-size:1.6rem;line-height:1.45;margin:24px 0 4px}
h2{font-size:1.15rem;margin:0 0 12px;padding-bottom:6px;border-bottom:2px solid var(--sumi)}
.sub{margin:0 0 16px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.lead{margin:8px 0 24px;max-width:62ch}

/* 枠 */
.site{display:flex;justify-content:space-between;align-items:center;gap:16px;
      width:var(--w);margin:0 auto;padding:14px 0}
.brand img{display:block}
.site-nav{display:flex;gap:16px;font-size:.95rem}
main{width:var(--w);margin:0 auto;padding-bottom:28px}
.sec{margin:32px 0}

/* このページのデータ（A18 §4-1） */
.jiten{width:var(--w);margin:0 auto 8px;padding:8px 12px;background:var(--bg2);
       border-left:3px solid var(--ao);font-size:.85rem;line-height:1.6;color:var(--muted)}
.jiten-label{font-weight:700;color:var(--sumi)}

/* 値 ─ 数字は等幅で桁をそろえる（A18 §6-2） */
.v{font-variant-numeric:tabular-nums;font-family:var(--mono)}
.v-miss{color:var(--muted);font-family:inherit}
.unit{font-family:inherit;font-size:.8em;margin-left:.25em;color:var(--muted)}
.note{display:inline-block;margin-left:.5em;padding:1px 6px;border:1px solid var(--line);
      border-radius:10px;font-size:.72rem;font-family:inherit;color:var(--muted);white-space:nowrap}
.src{display:block;font-size:.72rem;font-family:inherit;color:var(--muted);margin-top:2px}

/* 見出し：値 */
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 20px;margin:0}
.kv dt{color:var(--muted);font-size:.9rem}
.kv dd{margin:0}

/* 表 */
.scroll{overflow-x:auto}              /* 表だけ横スクロールを許す（A18 §6-3） */
.tbl{border-collapse:collapse;width:100%;font-size:.92rem}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.tbl thead th{border-bottom:2px solid var(--sumi);font-size:.85rem;white-space:nowrap}
.tbl td.n,.tbl th.n{text-align:right}
.tbl .strong{font-weight:700}
.tbl-src{font-size:.78rem;color:var(--muted);margin:6px 0 0}
.count{font-weight:700;margin:16px 0 8px}

/* 折りたたみ（A18 §6-3） */
.fold .hid{display:none}
.fold.open .hid{display:table-row}
.more{margin-top:10px;padding:8px 14px;border:1px solid var(--line);border-radius:6px;
      background:var(--bg);color:var(--ao);font:inherit;font-size:.9rem;cursor:pointer}
.more:hover{background:var(--bg2)}

/* 注記 ─ 欠測や収載状況（A18 §3） */
.caution{background:var(--bg2);border-left:3px solid var(--muted);padding:10px 14px;margin:12px 0;font-size:.92rem}
.state{background:var(--bg2);border-left:3px solid var(--ao);padding:10px 14px;margin:12px 0;font-size:.92rem}
.todo{color:var(--muted);font-size:.85rem;border:1px dashed var(--line);padding:8px 12px;border-radius:6px}

/* 入口のカード */
.cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:24px 0}
.card{display:block;padding:16px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:inherit}
.card:hover{border-color:var(--ao);background:var(--bg2)}
.card strong{display:block;color:var(--ao);margin-bottom:4px}
.card span{font-size:.9rem;color:var(--muted)}

/* 絞り込み */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.in{font:inherit;font-size:.95rem;padding:8px 10px;border:1px solid var(--line);border-radius:6px;min-width:0;flex:1 1 180px}
.in:focus{outline:2px solid var(--ao);outline-offset:1px}

.chip{display:inline-block;padding:2px 10px;border:1px solid var(--line);border-radius:12px;
      font-size:.8rem;text-decoration:none;color:var(--ao)}
.chip-miss{color:var(--muted)}
.loading{color:var(--muted)}

/* 足元 */
.site-foot{border-top:1px solid var(--line);margin-top:48px}
.site-foot nav{width:var(--w);margin:0 auto;padding:20px 0 4px;display:flex;flex-wrap:wrap;gap:20px;font-size:.9rem}
.site-foot p{width:var(--w);margin:0 auto;padding-bottom:28px;font-size:.8rem;color:var(--muted)}

@media (max-width:520px){
  h1{font-size:1.35rem}
  .kv{grid-template-columns:1fr;gap:2px 0}
  .kv dd{margin-bottom:10px}
}

/* 地図（B2） */
.map-wrap{max-width:660px;margin:0 auto}
.map{height:min(78vh,660px);min-height:400px;border:1px solid var(--line);border-radius:8px;margin:6px 0 12px;background:var(--bg2)}
.views{display:flex;gap:8px}
.vb{padding:5px 14px;border:1px solid var(--line);border-radius:6px;background:var(--bg);
    color:var(--ao);font:inherit;font-size:.85rem;cursor:pointer}
.vb:hover{background:var(--bg2);border-color:var(--ao)}
.leaflet-container{font:inherit;font-size:.9rem;background:var(--bg2)}
.leaflet-container a{color:var(--ao)}
.leaflet-control-attribution{font-size:.7rem;background:rgba(255,255,255,.85)}
.leaflet-tooltip{font-size:.85rem;line-height:1.5}

/* 凡例 ─ 色だけで意味を伝えない（A18 §6-1） */
.lg{margin:0 0 6px}
.lg-bar{display:flex;height:14px;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.lg-bar i{flex:1 1 0}
.lg-ticks{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);
          font-variant-numeric:tabular-nums;margin-top:4px}
.lg-note,.lg-src{font-size:.78rem;color:var(--muted);margin:4px 0 0}
.lg-tada{display:block}

/* ---- 図（B3。A18 §6-1 色だけで伝えない） ---- */
.cht{width:100%;height:auto;display:block;margin:4px 0 2px}
.cht .ax{font-size:11px;fill:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums}
.cl{display:flex;flex-wrap:wrap;gap:6px 16px;margin:2px 0 10px;font-size:.84rem}
.cl-i{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.cl-s{width:14px;height:10px;background:var(--c);border-radius:2px;display:inline-block}
.cl-s.est{height:0;border-radius:0;border-top:2px dashed var(--c);background:none}
.fnote{font-size:.82rem;color:var(--muted);margin:6px 0 14px;line-height:1.6}
.tw{overflow-x:auto;margin:6px 0 0}
.tw .tbl th.n,.tw .tbl td.n{white-space:nowrap}
.sub-h{margin-top:22px}
.sub-h h3{font-size:1rem;margin:0 0 6px}

/* ---- 施設ページ（B4） ---- */
.biko{font-size:.82rem;color:var(--muted);word-break:break-all}
.src-c{font-size:.78rem;color:var(--muted)}
.filters select.in{flex:1 1 100%;max-width:100%}
.shihyo td.nm{min-width:15em}
.shihyo tr.grp td{background:var(--bg2);font-weight:700;font-size:.85rem}
.fold.open tr.grp.hid{display:table-row}
.tbl td.sd{white-space:nowrap}
.tbl td.n{white-space:nowrap}
.zk{border-top:1px solid var(--line);padding:12px 0 4px}
.zk h3{font-size:.98rem;margin:0 0 6px}
.zk-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:12px 24px;align-items:end}
.hs{width:100%;height:auto;display:block}
@media (max-width:520px){ .zk-row{grid-template-columns:1fr} }
/* ---- 横断（B5） ---- */
.map-s{height:min(60vh,520px);min-height:320px}
.filters.chk{gap:18px;margin-top:0}
.filters.chk label{display:inline-flex;align-items:center;gap:6px;font-size:.92rem;cursor:pointer}
.filters.chk input{width:18px;height:18px}
/* ---- 規約など（B6） ---- */
.legal{max-width:70ch}
.legal section{margin:22px 0}
.legal h2{font-size:1.02rem;border-bottom:1px solid var(--line);padding-bottom:4px}
.legal p{margin:6px 0}
.legal-foot{margin-top:28px;color:var(--muted);font-size:.9rem}
/* SCR（圏域ページ） */
.scr-lead p{margin:0 0 8px;font-size:.9rem;line-height:1.7}
.tbl.scr td .note{display:block;white-space:normal;margin:3px 0 0;border:none;padding:0;border-radius:0}
.tbl.scr td:first-child{min-width:12em}
.filters input[type=search]{min-width:12em}
.tbl.scr td .code{margin-left:.5em;font-size:.72rem;color:var(--muted);font-family:var(--mono)}
/* 病院どうしの比較 */
.cmpbar{position:fixed;left:0;right:0;bottom:0;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;gap:12px;
        justify-content:center;padding:10px 16px;background:var(--inv-bg);color:var(--inv-t);font-size:.9rem}
.cmpbar a.cmp-go{color:var(--on-ao);background:var(--ao);padding:6px 14px;border-radius:6px;text-decoration:none;font-weight:700}
.cmpbar button.cmp-clear{background:transparent;color:var(--inv-t);border:1px solid rgba(255,255,255,.5);border-radius:6px;padding:5px 10px;cursor:pointer}
.cmpbar .cmp-msg{color:#ffd9a0}
body:has(#cmpbar){padding-bottom:64px}
.cmp-btn{margin-top:8px}
.tbl.cmp th.rh{font-weight:400;color:var(--sumi);min-width:10em;white-space:normal}
.tbl.cmp th.rh .note{display:block;white-space:normal;border:none;padding:0;margin:2px 0 0}
.tbl.cmp thead th{white-space:normal;min-width:9em;vertical-align:bottom}
.tbl.cmp .cmp-x{display:block;margin-top:4px;font-size:.72rem;border:1px solid var(--line);background:var(--card);border-radius:4px;cursor:pointer;padding:1px 6px}
.cmp-add{margin:12px 0}
.cmp-add input{width:100%;max-width:28em;padding:8px}
.cmp-cand{list-style:none;padding:0;margin:6px 0}
.cmp-cand button{background:none;border:none;color:var(--ao);cursor:pointer;padding:4px 0;text-align:left}
.cmp-cand button[disabled]{color:var(--muted);cursor:default}
.chk-l{display:inline-flex;align-items:center;gap:6px}
/* 介護の供給 */
.tbl.care tr.grp th{background:var(--bg2);font-weight:700;font-size:.85rem;text-align:left}
.tbl.care td .note{display:block;margin:2px 0 0;border:none;padding:0;text-align:right}
.filters select{max-width:100%}
.filters label{max-width:100%}
.fnote-i{font-size:.8rem;color:var(--muted);margin-left:.4em}
.tbl tr.grp th{background:var(--bg2);font-weight:700;font-size:.85rem;text-align:left}
/* 圏域の届出の集計 */
button.linkish{background:none;border:none;padding:0;color:var(--ao);text-align:left;cursor:pointer;font:inherit;text-decoration:underline}
tr.tdk-list td{background:var(--bg2)}
tr.tdk-list ul{margin:4px 0;padding-left:1.2em;columns:2}
@media (max-width:600px){tr.tdk-list ul{columns:1}}
/* 同じ圏域の病院：並べ替え */
th button.sort{background:none;border:none;padding:0;font:inherit;font-weight:700;cursor:pointer;color:var(--sumi);white-space:nowrap}
th button.sort.on{color:var(--ao)}
.tbl.kyogo td:first-child{min-width:12em}
/* ページ内の目次 */
nav.toc{display:flex;flex-wrap:wrap;gap:6px 8px;margin:12px 0 4px;padding:10px 12px;background:var(--bg2);border-radius:6px}
nav.toc button{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:3px 10px;font-size:.82rem;color:var(--ao);cursor:pointer}
section.sec{scroll-margin-top:12px}
/* 印刷・PDF（ブラウザの印刷から保存）。操作の部品を消し、折りたたんだ行もすべて出す */
@media print{
  header.site nav, nav.toc, .cmpbar, .filters, button.more, .cmp-btn, .views, .cmp-add, #jiten{display:none !important}
  body{padding-bottom:0;background:var(--card)}
  .fold .hid, .fold tr.hid, tr.hid{display:table-row !important}
  li.hid, div.hid{display:block !important}
  .tw, .scroll{overflow:visible !important}
  section.sec{break-inside:auto}
  h2, h3{break-after:avoid}
  tr{break-inside:avoid}
  .map, .map-wrap{break-inside:avoid}
  a{color:inherit;text-decoration:none}
  .tbl{font-size:10pt}
}
/* 入口：圏域をさがす */
.area-find{margin:4px 0 12px}
.area-cand{list-style:none;padding:0;margin:6px 0;display:flex;flex-wrap:wrap;gap:6px 14px}
.area-cand a{font-size:.95rem}
/* 届出で絞る（病院をさがす） */
.tdk-pick{margin:0 0 12px}
.tdk-pick .in{width:100%}
.tdk-cand{flex-direction:column;gap:4px}
.tdk-cand .note{color:var(--muted);font-size:.8rem}
.tdk-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.chip-x{background:none;cursor:pointer;font:inherit;font-size:.8rem;text-align:left;max-width:100%}
/* DPC の MDC別 */
.muted{color:var(--muted)}
tr.tot td{font-weight:600}
details>summary{cursor:pointer;margin:8px 0;color:var(--ao)}
/* 表の並べ替え・絞り込み（全ての表） */
th.th-sort{cursor:pointer;user-select:none;white-space:nowrap}
th.th-sort::after{content:"⇅";color:var(--muted);font-size:.75em;margin-left:3px}
th.th-sort[data-dir="desc"]::after{content:"▼";color:var(--ao)}
th.th-sort[data-dir="asc"]::after{content:"▲";color:var(--ao)}
.tbl-flt-w{display:flex;align-items:center;gap:8px;margin:6px 0}
.tbl-flt-w .in{flex:0 1 320px}
.tbl-flt-n{color:var(--muted);font-size:.85rem}
table.flt-on tr.hid{display:table-row}
tr.flt-x, table.flt-on tr.flt-x{display:none !important}
@media print{.tbl-flt-w{display:none} th.th-sort::after{content:""}}
.tbl .note.addr{display:block;margin:2px 0 0;border:none;padding:0;color:var(--muted);font-size:.8rem;white-space:normal}
/* 患者の流れ */
.flow-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.flow-2 h3{font-size:.95rem;margin:12px 0 4px}
@media (max-width:640px){.flow-2{grid-template-columns:1fr}}
.jr{margin-top:20px;border-top:1px solid var(--line);padding-top:8px}
/* 経営指標のタブ */
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px;border-bottom:1px solid var(--line)}
.tabs a{padding:6px 12px;border:1px solid var(--line);border-bottom:none;border-radius:6px 6px 0 0;text-decoration:none;color:var(--muted);font-size:.9rem}
.tabs a.on{color:var(--ao);background:var(--card);font-weight:600}

.qwrap{display:flex;flex-direction:column;gap:2px;min-width:150px}
.qbar{position:relative;height:14px;margin:0 6px}
.qbar span{position:absolute;top:50%;transform:translateY(-50%)}
.qb-l{height:2px;background:var(--muted)}
.qb-b{height:10px;background:color-mix(in srgb,var(--ao) 30%,transparent);border-radius:2px}
.qb-m{width:2px;height:12px;background:var(--sumi);margin-left:-1px}
.qb-v{width:9px;height:9px;border-radius:50%;background:var(--ao);margin-left:-4.5px;border:1px solid var(--card)}
.qtxt{font-size:.78rem;color:var(--muted)}
@media (max-width:640px){
  .qpos thead{display:none}
  .qpos,.qpos tbody,.qpos tr{display:block;width:100%}
  .qpos tr{display:grid;grid-template-columns:6.5em 1fr;gap:4px 10px;padding:8px 0;border-bottom:1px solid var(--line);align-items:end}
  .qpos td{display:block;border:0;padding:0}
  .qpos td.qn,.qpos td.qf,.qpos td[data-l="病床"],.qpos td[data-l="全国の病棟数"]{grid-column:1 / -1}
  .qpos td.qn{font-weight:600}
  .qpos td.qf{font-size:.85rem;color:var(--muted)}
  .qpos td[data-l]::before{content:attr(data-l);display:block;font-size:.72rem;color:var(--muted)}
  .qpos td.n{text-align:left}
  .qpos.coef tr{grid-template-columns:repeat(4,1fr)}
  .qpos.coef td.qc{grid-column:1 / -1}
  .qpos td[data-l="病床"]::before,.qpos td[data-l="全国の病棟数"]::before{display:inline;margin-right:.5em}
}
.linkish{background:none;border:0;padding:0;color:var(--ao);cursor:pointer;font:inherit;white-space:nowrap}
.tbl.yoyaku td{vertical-align:top}
@media (max-width:640px){
  .yoyaku thead{display:none}
  .yoyaku,.yoyaku tbody,.yoyaku tr,.yoyaku td{display:block;width:100%}
  .yoyaku tr{padding:8px 0;border-bottom:1px solid var(--line)}
  .yoyaku td{border:0;padding:2px 0}
  .yoyaku td.yk{font-weight:600}
  .yoyaku td[data-l]::before{content:attr(data-l);display:block;font-size:.72rem;color:var(--muted)}
}
/* ページ内のタブ（圏域・病院） */
nav.ptabs{position:sticky;top:0;z-index:20;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;background:var(--card);
  border-bottom:2px solid var(--line);margin:16px 0 0;padding-top:6px}
nav.ptabs::-webkit-scrollbar{display:none}
nav.ptabs button{flex:0 0 auto;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-2px;
  padding:10px 14px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}
nav.ptabs button.on{color:var(--sumi);border-bottom-color:var(--ao)}
nav.ptabs .ptab-n{margin-left:6px;font-size:.72rem;font-weight:400;color:var(--muted)}
nav.ptabs + nav.toc{margin-top:10px}
section.sec[hidden]{display:none}
.jiten details summary{cursor:pointer;list-style-position:inside}
.jiten details[open] summary{margin-bottom:4px}
@media print{ nav.ptabs{display:none !important} section.sec[hidden]{display:block !important} }
/* ヘッダー（幅の狭い画面では、ナビを1行で横に流す） */
@media (max-width:640px){
  .site{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 0}
  .site-nav{width:100%;gap:14px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;font-size:.9rem;padding-bottom:2px}
  .site-nav::-webkit-scrollbar{display:none}
  .site-nav a{flex:0 0 auto}
  nav.ptabs button{padding:9px 11px;font-size:.92rem}
}
dl.kfacts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}
dl.kfacts>div{border:1px solid var(--line);border-radius:6px;padding:6px 12px;min-width:96px;background:var(--card)}
dl.kfacts dt{font-size:.72rem;color:var(--muted)}
dl.kfacts dd{margin:0;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums}
details.long summary{cursor:pointer;color:var(--sumi)}
/* 入口 */
.hero{margin:24px 0 8px}
.hero h1{font-size:1.7rem;margin:0 0 8px}
.site-find{position:relative;margin:14px 0 4px}
.in.big{width:100%;font-size:1.05rem;padding:12px 14px;border:2px solid var(--ao);border-radius:8px;box-sizing:border-box}
.site-cand{margin-top:6px}
.site-cand ul{list-style:none;margin:0 0 8px;padding:0;border:1px solid var(--line);border-radius:6px}
.site-cand li{border-top:1px solid var(--line)}
.site-cand li:first-child{border-top:0}
.site-cand li a{display:block;padding:8px 12px;text-decoration:none}
.site-cand li a:hover{background:var(--bg2)}
.site-cand .note{margin-left:8px;font-size:.8rem;color:var(--muted)}
.cand-h{margin:10px 0 4px;font-size:.8rem;color:var(--muted);font-weight:600}
.home-h2{margin:36px 0 6px;font-size:1.25rem}
@media (max-width:640px){ .hero h1{font-size:1.35rem} }
@media (max-width:640px){ .cards{grid-template-columns:1fr 1fr;gap:8px} .card{padding:10px} .card span{font-size:.78rem} }
.tier-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:10px;background:var(--ao);color:var(--on-ao);font-size:.72rem;vertical-align:middle}
.member-note{border:1px dashed var(--ao);border-radius:8px;padding:14px 16px;background:var(--bg2)}
.member-note p{margin:4px 0 0;color:var(--muted)}
/* タブの頭の要点 */
.yoten{margin:16px 0 4px;padding:12px 16px;border:1px solid var(--line);border-left:4px solid var(--ao);border-radius:6px;background:var(--card)}
.yoten[hidden]{display:none}
.yoten-h{margin:0 0 6px;font-size:.78rem;font-weight:700;color:var(--ao);letter-spacing:.05em}
.yoten dl{display:grid;grid-template-columns:minmax(10em,16em) 1fr;gap:6px 16px;margin:0}
.yoten dt{color:var(--muted);font-size:.88rem}
.yoten dd{margin:0}
.yoten .yv{font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;margin-right:10px}
.yoten .ys{font-size:.8rem;color:var(--muted)}
@media (max-width:640px){ .yoten dl{grid-template-columns:1fr;gap:2px} .yoten dd{margin-bottom:8px} }
/* 用語の説明 */
.gl-q{display:inline-flex;align-items:center;justify-content:center;width:1.25em;height:1.25em;margin-left:6px;padding:0;border:1px solid var(--ao);
  border-radius:50%;background:var(--card);color:var(--ao);font-size:.72em;font-weight:700;line-height:1;cursor:pointer;vertical-align:middle}
.gl-pop{display:block;margin:6px 0 2px;padding:8px 10px;border-radius:6px;background:var(--bg2);border:1px solid var(--line);
  font-size:.82rem;font-weight:400;line-height:1.6;color:var(--sumi);letter-spacing:0}
.gl-pop[hidden]{display:none}
@media print{ .gl-q,.gl-pop{display:none !important} }
/* 横棒 */
.hbars{margin:8px 0 12px}
.hb-row{display:grid;grid-template-columns:minmax(8em,15em) 1fr 6.5em;align-items:center;gap:8px;padding:3px 0;font-size:.86rem}
.hb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-track{position:relative;height:14px;background:var(--bg2);border-radius:2px}
.hb-bar{position:absolute;left:0;top:0;bottom:0;background:var(--ao);border-radius:2px}
.hb-ref{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--sumi)}
.hb-ref-lg{display:inline-block;width:2px;height:12px;background:var(--sumi);margin-right:6px;vertical-align:middle}
.hb-val{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
@media (max-width:640px){ .hb-row{grid-template-columns:7.5em 1fr 5.2em;font-size:.8rem} }
/* ログイン・アカウント */
.site-nav a.acct{font-weight:700}
.btn{display:inline-block;padding:9px 16px;border:1px solid var(--ao);border-radius:6px;background:var(--ao);color:var(--on-ao);font:inherit;text-decoration:none;cursor:pointer}
.btn.btn-sub{background:var(--card);color:var(--muted);border-color:var(--line)}
.gis-btn{margin:20px 0 8px;min-height:44px}
.login-note{margin-top:24px;padding:12px 16px;background:var(--bg2);border-radius:6px;font-size:.88rem;color:var(--muted)}
.acct-btns{display:flex;gap:12px;margin-top:20px}
.member-note .btn{margin-top:8px}

/* 病院をさがす（U3）：条件と地図を畳む・スマホでは結果を札の形に */
.flt-main{margin-bottom:8px}
.flt-main>.in,.flt-more .filters>.in{flex:1 1 220px}
.flt-main>input[type=search]{flex:2 1 260px}
details.flt-more,details.map-d{border:1px solid var(--line);border-radius:8px;padding:0 14px;margin:10px 0}
details.flt-more>summary,details.map-d>summary{margin:0;padding:12px 0;font-weight:600;min-height:24px}
details.flt-more[open]>summary,details.map-d[open]>summary{border-bottom:1px solid var(--line);margin-bottom:6px}
details.flt-more .filters{margin:10px 0}
details.map-d .map-s{margin-top:0}
.sum-n{display:inline-block;margin-left:.6em;padding:0 8px;border-radius:10px;background:var(--ao);color:var(--on-ao);font-size:.78rem;font-weight:400}
.res-sort{margin:18px 0 0}
.res-sort select.in{flex:1 1 260px}
.sp-only{display:none}
@media (max-width:640px){
  .tbl.res thead{display:none}
  .tbl.res,.tbl.res tbody{display:block;width:100%}
  .tbl.res tr:not(.hid),.fold.open .tbl.res tr.hid{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding:12px 2px;border-bottom:1px solid var(--line)}
  .tbl.res td{display:block;padding:0;border:0;font-size:.9rem}
  .tbl.res td.c-name{flex:1 0 100%;font-size:1rem;font-weight:600;margin-bottom:2px}
  .tbl.res td.c-pref,.tbl.res td.c-area,.tbl.res td.c-dpc,.tbl.res td.c-x{color:var(--muted)}
  .tbl.res td.c-dpc::before,.tbl.res td.c-x::before{content:attr(data-l) " ";font-size:.85em}
  .tbl.res td.c-none{display:none}
  .tbl.res td.c-cmp{margin-left:auto}
  .tbl.res td.c-cmp .chk-l{font-size:.85rem;color:var(--muted);min-height:32px}
  .tbl.res .sp-only{display:inline}
  .map-s{height:min(60vh,420px);min-height:300px}
}

/* ================================================================
   U4（2026-09-27）見た目の刷新：データベースとしての見た目
   薄い灰の地に白い面を置き、数は大きく・ラベルは小さく。主役の色は青緑1つのまま（A18 §6）
   ================================================================ */
:root{ --page:#F2F4F6; --card:#FFFFFF; --line2:#E4E8EC; --r:12px; --shadow:0 1px 2px rgba(16,21,27,.05),0 2px 8px rgba(16,21,27,.04); --ao-bg:#E7F3F4 }
/* U29 色の名前（明るい配色）。暗い配色は末尾で差し替える */
:root{ --on-ao:#FFFFFF; --th:#F6F8FA; --th-t:#333B44; --warn-t:#9A5B00; --warn-bg:#FFF4E5; --neg:#B42318; --neg-bg:#FDECEC; --muted2:#66707B; --line3:#c5cbd2;
  --hot:#B84A0E; --hot-bg:#fdebe0; --ao-bg2:#F7FBFB; --inv-bg:#10151B; --inv-t:#FFFFFF; color-scheme:light }
body{background:var(--page)}
/* ヘッダー：白い帯を全幅に。ナビは下線なし */
body>header.site{width:100%;max-width:none;margin:0;padding:10px max(16px,calc((100% - 1040px)/2));background:var(--card);border-bottom:1px solid var(--line2);position:relative;z-index:30}
.site-nav{align-items:center;gap:6px}
.site-nav a{color:var(--sumi);text-decoration:none;padding:6px 10px;border-radius:6px;font-weight:600;font-size:.92rem}
.site-nav a:hover{background:var(--page);color:var(--ao)}
.site-nav a.acct{background:var(--ao);color:var(--on-ao);padding:6px 14px;border-radius:18px}
.site-nav a.acct:hover{filter:brightness(.92)}
.hd-find{flex:1 1 auto;max-width:340px;margin-left:auto}
.hd-find input{width:100%;font:inherit;font-size:.88rem;padding:7px 12px 7px 32px;border:1px solid var(--line2);border-radius:18px;background:var(--page) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235B6570' stroke-width='2'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 4 4'/%3E%3C/svg%3E") no-repeat 11px 50%}
.hd-find input:focus{outline:2px solid var(--ao);background-color:var(--card)}
@media (max-width:900px){ .hd-find{display:none} }
.jiten{margin-top:14px;background:var(--card);border:1px solid var(--line2);border-left:3px solid var(--ao);border-radius:8px}
/* 見出し：黒い下線をやめ、左に主役の色の短い棒 */
h1{font-size:1.65rem;letter-spacing:.01em}
h2{border-bottom:0;padding:0 0 0 12px;position:relative;font-size:1.12rem}
h2::before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:4px;border-radius:2px;background:var(--ao)}
.legal h2::before{display:none}
.legal h2{padding-left:0}
/* 節は白い面 */
section.sec{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:20px 24px;box-shadow:var(--shadow);margin:16px 0}
@media (max-width:640px){ section.sec{padding:16px 14px;border-radius:10px} }
.sec .sec{box-shadow:none;border:0;padding:0;margin:12px 0}
/* 表：見出し行は薄い灰、行に重ねると色 */
.tbl thead th{background:var(--th);border-bottom:1px solid var(--line2);font-weight:600;color:var(--th-t)}
.tbl th,.tbl td{border-bottom-color:var(--line2)}
.tbl tbody tr:hover td{background:var(--ao-bg2)}
.more{border-radius:18px}
/* ひと目の数字：大きく */
dl.kfacts{gap:10px}
dl.kfacts>div{border-color:var(--line2);border-radius:10px;padding:10px 16px;min-width:130px;box-shadow:var(--shadow)}
dl.kfacts dd{font-size:1.35rem;line-height:1.3}
/* 要点・タブ */
.yoten{border-color:var(--line2);border-radius:10px;box-shadow:var(--shadow)}
nav.ptabs{background:var(--page);border-bottom-color:var(--line2)}
nav.ptabs button.on{color:var(--ao)}
nav.toc{background:transparent !important}
.caution{border-radius:0 8px 8px 0;background:var(--card);border:1px solid var(--line2);border-left:3px solid var(--muted)}
.chip{background:var(--card)}
.in{border-color:var(--line3);background:var(--card)}
.in:focus{outline:2px solid color-mix(in srgb,var(--ao) 55%,transparent);outline-offset:0;border-color:var(--ao)}
/* 入口 */
.hero{margin:28px 0 8px}
.hero h1{font-size:2rem}
.in.big{border-radius:28px;padding:14px 20px;box-shadow:var(--shadow)}
.hero-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 6px}
.hk{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:14px 18px;box-shadow:var(--shadow)}
.hk p{margin:0}
.hk-l{font-size:.8rem;color:var(--muted);font-weight:600}
.hk-n{font-size:2rem;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ao);letter-spacing:-.02em}
.hk small,.ov-n small{margin-left:4px;font-size:.85rem;color:var(--muted);font-weight:600}
.hk-s{font-size:.78rem;color:var(--muted)}
.card{background:var(--card);border-color:var(--line2);border-radius:var(--r);box-shadow:var(--shadow);transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--ao);transform:translateY(-1px)}
.home-h2{margin-top:40px}
@media (max-width:640px){ .hero h1{font-size:1.4rem} .hero-kpi{gap:6px} .hk{padding:8px 10px} .hk-n{font-size:1.3rem} .hk-s{display:none} }
/* 病院をさがす：PCは左に条件、右に概要と結果 */
.srch{display:block}
.side-h{display:none}
@media (min-width:1000px){
  .srch{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
  .srch-side{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
  .side-h{display:block;margin:0 0 4px;font-size:.8rem;font-weight:700;color:var(--muted);letter-spacing:.05em}
  .srch-side .filters{margin:8px 0}
  .srch-side .filters>.in{flex:1 1 100%}
  .srch-side details.flt-more{border:0;padding:0;margin:4px 0 0}
  .srch-side details.flt-more>summary{padding:8px 0;font-size:.9rem}
  .srch-side .tdk-pick .in{width:100%}
  .srch-main .res-sort{margin-top:12px}
}
details.flt-more,details.map-d{background:var(--card);border-color:var(--line2);border-radius:var(--r)}
/* データ概要 */
.ov{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:16px 20px;box-shadow:var(--shadow);margin:0 0 12px}
.ov p{margin:0}
.ov-kpi{display:flex;flex-wrap:wrap;gap:12px 40px;padding-bottom:12px;border-bottom:1px solid var(--line2)}
.ov-l{font-size:.78rem;font-weight:700;color:var(--muted);letter-spacing:.03em;margin-bottom:4px !important}
.ov-n{font-size:1.9rem;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ao);line-height:1.2;letter-spacing:-.02em}
.ov-s{font-size:.78rem;color:var(--muted)}
.ov-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px 24px;padding-top:12px}
.ov-chips{display:flex;flex-wrap:wrap;gap:6px}
.ov-chip{font:inherit;font-size:.84rem;border:1px solid var(--line2);background:var(--page);border-radius:14px;padding:3px 10px;cursor:pointer;color:var(--sumi)}
.ov-chip span{margin-left:6px;font-family:var(--mono);color:var(--ao);font-weight:700}
.ov-chip:hover{border-color:var(--ao);background:var(--ao-bg)}
.ov-bar{display:grid;grid-template-columns:6.5em 1fr 3.5em;align-items:center;gap:6px;font-size:.8rem;margin:2px 0}
.ov-bt{height:8px;background:var(--page);border-radius:4px;overflow:hidden}
.ov-bt i{display:block;height:100%;background:var(--ao);border-radius:4px}
.ov-bv{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
.ov-row{display:flex;justify-content:space-between;gap:8px;font-size:.84rem;padding:2px 0;border-bottom:1px dashed var(--line2)}
@media (max-width:760px){ .ov-grid{grid-template-columns:1fr} .ov{padding:12px 14px} .ov-n{font-size:1.5rem} .ov-kpi{gap:8px 24px} }
.srch-main .fold,.srch-main .scroll{background:var(--card);border-radius:var(--r)}
@media (min-width:641px){ .srch-main .scroll{border:1px solid var(--line2);box-shadow:var(--shadow)} .srch-main .tbl.res{margin:0} .srch-main .fold>.more{margin:10px} }
@media (max-width:640px){ .srch-main .tbl.res tr:not(.hid),.srch-main .fold.open .tbl.res tr.hid{padding:12px 12px} }
.count{font-size:.95rem}
.site-foot{background:var(--card);border-top:1px solid var(--line2);padding-top:8px}
@media print{ body{background:var(--card)} section.sec,.ov,.hk{box-shadow:none;border:0;padding:0} body>header.site{position:static} }
/* 病院・圏域のページの頭（U4）：名前と数字を1枚の面に */
.phead{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:18px 24px;margin:16px 0 4px;box-shadow:var(--shadow)}
.phead>h1{margin:0 0 4px}
.phead>.sub{margin-bottom:10px}
.phead dl.kfacts{margin:6px 0 0}
.phead dl.kfacts>div{box-shadow:none;background:var(--page);border-color:transparent}
.phead .cmp-btn{margin-top:12px}
@media (min-width:900px){
  .phead{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:28px;align-items:start}
  .phead>h1,.phead>.sub,.phead>.cmp-btn{grid-column:1}
  .phead>dl.kfacts{grid-column:2;grid-row:1 / span 3;margin:0;align-self:center;max-width:520px;justify-content:flex-end}
  .phead>.cmp-btn{justify-self:start}
}
@media (max-width:640px){ .phead{padding:14px} }
/* 切り替えのボタン（単年／3年平均など） */
.seg{display:inline-flex;gap:0;margin:4px 0 10px;border:1px solid var(--line2);border-radius:18px;padding:2px;background:var(--page)}
.seg button{font:inherit;font-size:.86rem;border:0;background:transparent;padding:5px 14px;border-radius:16px;cursor:pointer;color:var(--muted)}
.seg button.on{background:var(--card);color:var(--ao);font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.yrs{font-size:.8rem;color:var(--muted);font-family:var(--mono);white-space:nowrap}
.tbl.wage td:first-child{min-width:8em}
@media (max-width:640px){ .ov-grid>div:nth-child(n+2){display:none} .ov-kpi{padding-bottom:10px} }
.scroll{background:var(--card);border-radius:8px}
.tbl tbody td:first-child{min-width:6.5em}
.tbl a{text-decoration:none;font-weight:600}
.tbl a:hover{text-decoration:underline}
@media (min-width:641px){ .tbl.res td{padding:7px 10px} .tbl.res td.c-dpc,.tbl.res td.c-pref,.tbl.res td.c-beds{white-space:nowrap} }
/* 位置づけ（U5） */
.ic-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:4px 0 14px}
.ic{background:var(--page);border-radius:10px;padding:12px 14px;display:block;text-decoration:none;color:inherit}
.ic p{margin:0}
.ic-l{font-size:.76rem;font-weight:700;color:var(--muted)}
.ic-n{font-size:1.6rem;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ao);line-height:1.3}
.ic-n small{margin-left:3px;font-size:.8rem;color:var(--muted)}
.ic-s{font-size:.78rem;color:var(--muted);line-height:1.5}
.ic-nm{font-weight:700;font-size:.92rem;line-height:1.4;margin:2px 0 !important}
a.ic-a:hover{background:var(--ao-bg)}
.sct-w{margin:6px 0 10px}
.cht.sct .pt{cursor:pointer}
.cht.sct .pt:hover,.cht.sct .pt:focus{fill:var(--ao);fill-opacity:1;outline:none}
.sct-lb{font-size:12px;font-weight:700;fill:var(--ao)}
.tdk2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:6px}
.tdk2 h4{font-size:.88rem;margin:4px 0 8px;line-height:1.5}
.tdk2 .hn{margin-left:8px;font-weight:400;color:var(--muted);font-size:.8rem}
ul.tdk-bars{list-style:none;margin:0;padding:0}
ul.tdk-bars li{display:grid;grid-template-columns:minmax(0,1fr) 70px 3em;gap:8px;align-items:center;padding:5px 0;border-bottom:1px dashed var(--line2);font-size:.86rem}
ul.tdk-bars a{text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
ul.tdk-bars a:hover{text-decoration:underline}
.tb-t{height:6px;background:var(--page);border-radius:3px;overflow:hidden}
.tb-t i{display:block;height:100%;background:var(--ao)}
.tb-v{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted)}
@media (max-width:760px){ .tdk2{grid-template-columns:1fr} .ic-row{grid-template-columns:1fr 1fr} .ic-n{font-size:1.3rem} }
/* ヘッダーの検索の候補（U5） */
.hd-find{position:relative}
.hf-pop{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line2);border-radius:12px;box-shadow:0 8px 28px rgba(16,21,27,.14);padding:6px;z-index:50;min-width:360px}
.hf-pop[hidden]{display:none}
.hf-i{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;padding:7px 10px;border-radius:8px;text-decoration:none;color:var(--sumi)}
.hf-i.on,.hf-i:hover{background:var(--ao-bg)}
.hf-tag{display:inline-block;font-size:.68rem;font-weight:700;color:var(--ao);background:var(--ao-bg);border-radius:4px;padding:1px 6px;margin-right:6px;align-self:start;margin-top:3px}
.hf-i .hf-tag{grid-row:1 / span 2;margin-right:0}
.hf-m{font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hf-s{grid-column:2;font-size:.76rem;color:var(--muted)}
.recent{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 0}
.rc-h{font-size:.78rem;color:var(--muted);font-weight:700;margin-right:4px}
.rc{display:inline-flex;align-items:center;background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:3px 10px 3px 6px;font-size:.84rem;text-decoration:none;color:var(--sumi)}
.rc:hover{border-color:var(--ao)}
.res-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.btn-sub2{font:inherit;font-size:.84rem;border:1px solid var(--ao);color:var(--ao);background:var(--card);border-radius:16px;padding:5px 14px;cursor:pointer}
.btn-sub2:hover{background:var(--ao-bg)}
.cards-h{margin:26px 0 -12px;font-size:.8rem;font-weight:700;color:var(--muted);letter-spacing:.05em}
.cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.sct-s{overflow-x:auto}
@media (max-width:640px){ .sct-s .cht.sct{width:100%;height:auto;display:block} }
/* マイページ（U6） */
.phead-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}
.phead-btns .cmp-btn{margin:0}
@media (min-width:900px){ .phead>.phead-btns{grid-column:1} }
.res-btns{display:flex;flex-wrap:wrap;gap:8px}
.site-nav a.my-link{color:var(--ao)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--inv-bg);color:var(--inv-t);border-radius:22px;padding:10px 18px;font-size:.9rem;z-index:80;transition:.2s;box-shadow:0 6px 24px rgba(0,0,0,.2)}
.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast a{color:#7FD6DE;margin-left:12px;font-weight:700}
.my-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-top:8px}
.my-head .lead{margin-bottom:6px}
.my-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.my-share{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--ao-bg);border-radius:var(--r);padding:12px 16px;margin:8px 0}
.my-share p{margin:0}
.my-addbox{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);margin:8px 0 16px}
.my-addbox[hidden]{display:none}
.my-addbox h3{font-size:.88rem;margin:0 0 8px}
.my-add-col .in{width:100%}
.my-add-col .filters{margin:0 0 6px}
.my-cand{display:flex;flex-direction:column;margin-top:6px;max-height:320px;overflow:auto}
.my-cand .hf-i{border:0;background:none;font:inherit;text-align:left;cursor:pointer}
@media (max-width:900px){ .my-addbox{grid-template-columns:1fr} }
.my-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
@media (max-width:1000px){ .my-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .my-grid{grid-template-columns:1fr} .mc.mc-m{grid-column:auto !important} }
.mc{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--shadow);padding:12px 16px 14px;min-width:0}
.mc.mc-m{grid-column:span 2}
.mc.drag{opacity:.45}
.mc.over{outline:2px dashed var(--ao);outline-offset:2px}
.mc-h{display:flex;align-items:center;gap:6px;margin:0 0 6px;min-width:0}
.mc-grip{cursor:grab;color:#B0B8C0;font-size:.8rem;letter-spacing:-2px;user-select:none}
.mc-h .hf-tag{margin:0}
.mc-t{font-size:1rem;margin:0;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-h .in{flex:1 1 auto;padding:4px 8px}
.mc-acts{display:flex;gap:2px;opacity:.35;transition:opacity .15s}
.mc:hover .mc-acts,.mc:focus-within .mc-acts{opacity:1}
@media (hover:none){ .mc-acts{opacity:1} }
.mc-x{font:inherit;font-size:.82rem;width:26px;height:26px;border:0;background:transparent;border-radius:6px;cursor:pointer;color:var(--muted)}
.mc-x:hover{background:var(--page);color:var(--sumi)}
.mc-sub{margin:0 0 8px;font-size:.8rem;color:var(--muted)}
.mk-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:8px}
.mk{background:var(--page);border-radius:8px;padding:8px 10px}
.mk p{margin:0}
.mk-l{font-size:.72rem;font-weight:700;color:var(--muted)}
.mk-n{font-size:1.3rem;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ao);line-height:1.3}
.mk-n small{margin-left:3px;font-size:.75rem;color:var(--muted)}
.mk-s{font-size:.72rem;color:var(--muted)}
.mc-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.mc-chips .ov-chip{cursor:default}
.mc-list{margin:4px 0 8px}
.mc-list a{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed var(--line2);text-decoration:none;color:var(--sumi);font-size:.86rem}
.mc-list a span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-list a:hover span:first-child{color:var(--ao);text-decoration:underline}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;font-size:.8rem}
.mc-links{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 0;font-size:.84rem}
.mc-links a{text-decoration:none;font-weight:600}
.mc-links a::after{content:" →"}
.my-note{width:100%;resize:vertical;font-size:.9rem;line-height:1.7}
.my-empty{grid-column:1 / -1;background:var(--card);border:1px dashed var(--line3);border-radius:var(--r);padding:22px 24px}
.my-empty-h{font-weight:700;font-size:1.05rem;margin:0 0 6px}
.my-empty ul{margin:6px 0 10px;padding-left:1.2em;color:var(--muted);font-size:.92rem}
@media print{ .my-tools,.my-addbox,.mc-acts,.mc-grip,#my-sync,.toast{display:none !important} .my-grid{grid-template-columns:1fr 1fr} .mc{break-inside:avoid;box-shadow:none} }
.ich-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:4px 0 6px}
.ich-ctl .seg{margin:0}
.ich-ctl label{font-size:.86rem;color:var(--muted)}
.in.in-s{padding:4px 8px;font-size:.86rem;width:auto}
.jbar{display:inline-block;width:60px;height:6px;background:var(--page);border-radius:3px;overflow:hidden;margin-right:8px;vertical-align:middle}
.jbar i{display:block;height:100%;background:var(--ao)}
.hf-tag{white-space:nowrap;flex-shrink:0}
.mc-h .mc-acts{flex-shrink:0}
/* 施設基準をさがす（U7） */
.kj-kpi{margin-top:6px}
.kj-f .in{flex:1 1 200px}
.kj-f input[type=search]{flex:3 1 320px}
.kj-hit{min-height:1em;margin-top:-6px}
.kj{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start}
.kj-nav{position:sticky;top:12px;background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:8px;box-shadow:var(--shadow);max-height:calc(100vh - 24px);overflow:auto}
.kj-ch{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;width:100%;border:0;background:none;font:inherit;font-size:.88rem;text-align:left;padding:7px 8px;border-radius:8px;cursor:pointer;color:var(--sumi)}
.kj-ch:hover{background:var(--page)}
.kj-ch.on{background:var(--ao-bg);color:var(--ao);font-weight:700}
.kj-ch.dim{opacity:.4}
.kj-L{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:var(--page);font-weight:700;font-family:var(--mono);font-size:.82rem;color:var(--ao)}
.kj-ch.on .kj-L{background:var(--ao);color:var(--on-ao)}
.kj-L.big{width:34px;height:34px;font-size:1rem;margin-right:10px;background:var(--ao);color:var(--on-ao)}
.kj-n{font-family:var(--mono);font-size:.78rem;color:var(--muted)}
.kj-sec{margin:0 0 18px}
.kj-h{display:flex;align-items:center;padding-left:0;margin:0 0 10px}
.kj-h::before{display:none}
.kj-h .hn{margin-left:10px;font-weight:400;font-size:.82rem;color:var(--muted)}
.kj-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.kj-item{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow);min-width:0}
.kj-ih{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}
.kj-ih h3{font-size:.95rem;margin:0;line-height:1.5}
.kj-im{font-size:.74rem;color:var(--muted);white-space:nowrap}
ul.kj-rows{list-style:none;margin:0;padding:0}
ul.kj-rows li{display:grid;grid-template-columns:minmax(0,1fr) 60px 4.6em 26px;gap:8px;align-items:center;padding:4px 0;border-top:1px dashed var(--line2);font-size:.84rem}
ul.kj-rows a{text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
ul.kj-rows a:hover{text-decoration:underline}
.kj-c{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700}
.kj-c small{margin-left:2px;font-weight:400;color:var(--muted);font-size:.72rem}
@media (max-width:900px){
  .kj{grid-template-columns:1fr}
  .kj-nav{position:static;display:flex;overflow-x:auto;gap:4px;max-height:none;padding:6px;scrollbar-width:none}
  .kj-nav::-webkit-scrollbar{display:none}
  .kj-ch{flex:0 0 auto;width:auto;grid-template-columns:auto auto auto}
  .kj-items{grid-template-columns:1fr}
}
.site-nav a{white-space:nowrap;padding:6px 9px}
.hd-find{max-width:260px}
@media (max-width:1100px) and (min-width:641px){ .hd-find{display:none} }
.kj-f select.in{flex:0 1 220px}
ul.kj-rows a{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45}
/* 告示・通知・疑義解釈（U8） */
.kb{display:inline-block;font-family:var(--mono);font-size:.78rem;font-weight:700;color:var(--ao);background:var(--ao-bg);border-radius:5px;padding:1px 6px;margin-right:8px;white-space:nowrap;text-decoration:none}
.kb-big{font-size:1rem;padding:3px 10px;margin-right:12px;vertical-align:middle}
.hk-a{text-decoration:none;color:inherit}
.hk-a:hover{border-color:var(--ao)}
.rl-g{margin:0 0 16px}
.rl-g h3{font-size:.86rem;color:var(--muted);margin:0 0 6px}
.rl-rows{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.rl-r{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px;align-items:center;padding:8px 14px;border-top:1px solid var(--line2);text-decoration:none;color:var(--sumi);font-size:.92rem}
.rl-r:first-child{border-top:0}
.rl-r:hover{background:var(--ao-bg2)}
.rl-r:hover .rl-n{color:var(--ao)}
.rl-b{display:flex;gap:4px;align-items:center}
.rl-pt{font-family:var(--mono);font-size:.8rem;color:var(--muted);margin-right:4px}
.bd{display:inline-block;font-size:.68rem;font-weight:700;border-radius:4px;padding:1px 6px;background:var(--page);color:var(--muted);white-space:nowrap}
.bd-q{background:var(--warn-bg);color:var(--warn-t)}
.bd-t{background:var(--ao-bg);color:var(--ao)}
.bd-g{background:var(--bg2);color:var(--muted);font-weight:400}
.crumb{font-size:.82rem;color:var(--muted);margin:14px 0 4px}
.crumb a{text-decoration:none}
.rk-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.rk-head h1{margin:6px 0 4px;display:flex;align-items:center;flex-wrap:wrap}
.rk-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.rk-tools .in{width:220px}
.rk-pn{margin-left:auto;display:inline-flex;gap:12px}
.rk-pn a{text-decoration:none;font-family:var(--mono);font-size:.84rem}
.rk-bar{position:sticky;top:0;z-index:15;background:var(--page);padding:6px 0}
.rk-bar .seg{margin:0}
.rk{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;align-items:start}
.rk-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rk-2 .rk-qa{grid-column:1 / -1}
.rk-col{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}
.rk-ch{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line2)}
.rk-ch h2{margin:0;font-size:1rem}
.rk-src{font-size:.8rem;text-decoration:none}
.rk-body{padding:10px 18px 14px;font-size:.92rem;line-height:1.85}
@media (min-width:1100px){ .rk-2>.rk-col:not(.rk-qa) .rk-body{max-height:calc(100vh - 170px);overflow:auto} }
.rp{margin:0 0 .7em}
.rp b{color:var(--sumi);margin-right:.35em}
.rp-chu{padding-left:.2em}
.rp-n{padding-left:.8em}
.rp-sub{padding-left:1.8em}
.kb-l{font-weight:700;text-decoration:none;border-bottom:1px dotted var(--ao)}
mark{background:#FFE58A;padding:0 1px}
.rk-side{position:sticky;top:52px;display:flex;flex-direction:column;gap:12px}
.rk-side section{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow)}
.rk-side h3{font-size:.86rem;margin:0 0 8px}
.rk-side ul{list-style:none;margin:0;padding:0;font-size:.84rem}
.rk-sib{max-height:320px;overflow:auto}
.rk-sib li a{display:flex;align-items:baseline;padding:4px 0;text-decoration:none;color:var(--sumi)}
.rk-sib li.on a{color:var(--ao);font-weight:700}
.rk-sib li a:hover{color:var(--ao)}
.rk-tdk li{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px dashed var(--line2)}
.rk-tdk a{text-decoration:none}
.rk-srcs li{padding:3px 0;line-height:1.5}
.qa{border-top:1px solid var(--line2);padding:12px 0}
.qa:first-child{border-top:0}
.qa p{margin:0 0 6px}
.qa-h{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.84rem}
.qa-q{font-weight:600}
.qa-a{background:var(--page);border-radius:8px;padding:8px 12px}
.qa-f{font-size:.78rem;color:var(--muted)}
.qa-w{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:4px 18px 8px;margin:0 0 10px;box-shadow:var(--shadow)}
.qa-k{margin:10px 0 0}
@media (max-width:900px){ .rk{grid-template-columns:1fr} .rk-side{position:static} .rk-2{grid-template-columns:1fr} .rk-tools .in{width:100%} }
.card.rule-only{display:none}
body.has-rule .card.rule-only{display:block}
.kj-nmw{display:flex;align-items:baseline;min-width:0}
.kj-nmw .kb{margin-right:6px;flex-shrink:0}
.kj-nmw>a:last-child{min-width:0}
.qa p,.rp{overflow-wrap:anywhere}
.rk-docs{list-style:none;margin:0 0 10px;padding:0}
.rk-docs li{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line2);font-size:.86rem}
.rk-dt{flex:1 1 260px;min-width:0}
.rk-pg{display:flex;flex-wrap:wrap;gap:6px}
.rk-pg a{font-family:var(--mono);font-size:.8rem;text-decoration:none;border:1px solid var(--line2);border-radius:10px;padding:0 7px}
.rk-pg a:hover{border-color:var(--ao)}
.rk-h3{font-size:.88rem;margin:12px 0 6px}
.rk-sh{list-style:none;margin:0;padding:0}
.rk-sh li{padding:10px 0;border-top:1px solid var(--line2)}
.rk-sh li:first-child{border-top:0}
.rk-sh p{margin:0 0 4px}
.sh-t{font-weight:600}
.sh-y{font-size:.86rem;background:var(--page);border-radius:8px;padding:6px 10px}
.tbl.rk-it td:first-child{min-width:12em}
.rk-y{font-size:.82rem;font-weight:700;color:var(--muted);margin:4px 0}
.rk-yd summary{font-size:.82rem;font-weight:700;color:var(--muted);margin:10px 0 4px}
/* 告示・通知のブラッシュアップ（U8b） */
body.wide main,body.wide .jiten{width:min(var(--wmax),100% - 32px)}
body.wide>header.site{padding-left:max(16px,calc((100% - var(--wmax))/2));padding-right:max(16px,calc((100% - var(--wmax))/2))}
.rt-wrap{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}
.rt{position:sticky;top:10px;max-height:calc(100vh - 20px);overflow:auto;background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:10px;box-shadow:var(--shadow);font-size:.84rem}
.rt-ch{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px}
.rt-ch button{font:inherit;font-family:var(--mono);font-weight:700;font-size:.78rem;width:26px;height:26px;border:0;border-radius:6px;background:var(--page);color:var(--ao);cursor:pointer}
.rt-ch button.on{background:var(--ao);color:var(--on-ao)}
.rt-h{font-weight:700;margin:4px 0 6px}
.rt-g summary{cursor:pointer;font-weight:600;color:var(--sumi);margin:6px 0 2px;list-style-position:inside}
.rt-n{margin-left:6px;font-family:var(--mono);font-size:.72rem;color:var(--muted);font-weight:400}
.rt ul{list-style:none;margin:0 0 6px;padding:0 0 0 4px}
.rt li a{display:flex;align-items:baseline;gap:0;padding:3px 4px;border-radius:6px;text-decoration:none;color:var(--sumi);line-height:1.45}
.rt li a:hover{background:var(--page)}
.rt li.on a{background:var(--ao-bg);color:var(--ao);font-weight:700}
.rt .kb{font-size:.7rem;margin-right:6px}
.rt-t{font-size:.7rem;font-weight:700;color:var(--warn-t);background:var(--warn-bg);border-radius:4px;padding:0 5px;margin-right:6px}
.rt-open{display:none;margin-right:10px}
.rk-pts{background:var(--card);border:1px solid var(--line2);border-left:4px solid var(--ao);border-radius:var(--r);box-shadow:var(--shadow);padding:10px 18px;margin:0 0 14px}
.rk-pts table{width:100%;border-collapse:collapse;font-size:.94rem}
.rk-pts td{padding:5px 4px;border-bottom:1px dashed var(--line2);vertical-align:top}
.rk-pts tr:last-child td{border-bottom:0}
.rk-pts td.pt{text-align:right;white-space:nowrap;font-family:var(--mono);font-weight:700;color:var(--ao);font-size:1rem}
.rk-pts tr.lv1 td:first-child{padding-left:1em}
.rk-pts tr.lv2 td:first-child{padding-left:2.2em}
.rk-pts tr.grp td{font-weight:700;color:var(--sumi)}
.bd-b{border:0;cursor:pointer;font:inherit;font-size:.74rem;font-weight:700;padding:3px 9px;border-radius:12px}
.rl-t .kb{background:var(--warn-bg);color:var(--warn-t)}
.rk-all>*{margin-bottom:14px}
@media (max-width:1100px){
  .rt-wrap{grid-template-columns:1fr}
  .rt{position:fixed;left:0;top:0;bottom:0;width:min(320px,86vw);max-height:none;z-index:70;border-radius:0 var(--r) var(--r) 0;transform:translateX(-105%);transition:transform .2s}
  body.rt-show .rt{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.25)}
  .rt-open{display:inline-block}
}
@media print{
  .rt,.rt-open,.rk-bar,.rk-tools,.rk-side,header.site,.site-foot,.jiten,.crumb{display:none !important}
  .rt-wrap,.rk{display:block}
  body.wide main{width:100%}
  .rk-col,.rk-pts{box-shadow:none;break-inside:auto}
  .rk-body{max-height:none !important;overflow:visible !important}
}
.rt-se{font-size:.76rem;font-weight:700;color:var(--muted);margin:8px 0 2px;padding-left:2px}
.tbl-src{overflow-wrap:anywhere}

/* ===== U9 横幅と改行（A81） ===== */
:root{--wmax:1600px;--w:min(var(--wmax), 100% - 48px)}
@media (max-width:640px){ :root{--w:calc(100% - 32px)} }
body>header.site{padding-left:max(16px,calc((100% - var(--wmax))/2));padding-right:max(16px,calc((100% - var(--wmax))/2))}
/* 日本語の改行：文節で折る（対応ブラウザ）、段落の最終行を短くしない、見出しは行の長さをそろえる */
/* 文節で折るのは短い文だけ（見出し・札・ラベル・導入文）。本文や注記は右端までそろえて折る（文節で折ると右が空く） */
h1,h2,h3,h4,th,dt,label,summary,figcaption,.lead,.card b,.card span,.hk-s,.ov-s,.tabs a,.yoten dt,.sub{word-break:auto-phrase;overflow-wrap:break-word}
h1,h2,h3,h4,.card b{text-wrap:balance}
.lead,.card span{text-wrap:pretty}
/* 読む文の幅：ch は半角の幅なので日本語では短すぎた（62ch ≒ 31字）。em（≒全角1字）で持つ */
.lead{max-width:46em}
.legal{max-width:42em}
.fnote,.tbl-src{max-width:64em}
/* 絞り込みの選択：横いっぱいに縦積みにせず、中身の幅で横に並べる */
@media (min-width:641px){
  .filters select.in{flex:0 1 auto;min-width:12em;max-width:32em}
  .filters input.in[type=search],.filters input.in[type=text]{flex:0 1 20em}
  .srch-side .filters select.in,.srch-side .filters input.in,.my-add-col .filters select.in,.my-add-col .filters input.in{flex:1 1 100%;max-width:none;min-width:0}
}
/* 入口の目的別の札：狭い列に長い文を入れない */
.cards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
/* 病院・圏域の頭の数字の札：折り返して空きを作らない */
@media (min-width:900px){ .phead>dl.kfacts{max-width:none;flex-wrap:nowrap} }
/* 病院をさがす：条件の列を少し広く */
@media (min-width:900px){ .srch{grid-template-columns:320px minmax(0,1fr)} }
/* 図：横に広げすぎると文字が大きくなりすぎるので上限（中身は左に寄せる） */
.cht{max-width:900px}
.cht.sct{max-width:960px}
/* 表：文字の列は左寄せ、数の列は等幅の数字 */
.tbl td.n,.tbl th.n{font-variant-numeric:tabular-nums}
/* 告示・通知の目次：少し広く、長い名前は2行まで */
@media (min-width:1101px){ .rt-wrap{grid-template-columns:280px minmax(0,1fr)} }
/* 表の見出しが長いと列が広がり、1列目（名前）が細く折れていた */
.tbl.keiei th.n{white-space:normal;min-width:4.5em;max-width:9em;vertical-align:bottom}
.tbl.keiei td:first-child{min-width:12em}
.tbl td:first-child{min-width:6em}
.tbl.keiei thead th{vertical-align:bottom}
.kj-ih{flex-wrap:wrap;row-gap:2px}.kj-ih h3{min-width:0}
.rk-hn{font-size:.9rem;font-weight:500;color:var(--muted);margin-left:8px}
.rk-pts td.pt .pt-s{display:block;white-space:normal;font-family:var(--sans,inherit);font-weight:400;font-size:.78rem;color:var(--muted);max-width:18em;margin-left:auto;text-align:right}
h1,h2,h3,h4{overflow-wrap:anywhere}
.seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.seg button{white-space:nowrap;flex:0 0 auto}
.rt-main{min-width:0}@media (max-width:1100px){.rt-wrap{grid-template-columns:minmax(0,1fr)}}

/* ===== U10 使いやすさ（A82） ===== */
/* 読み込みの進捗：上の細い線 */
.pbar{position:fixed;left:0;top:0;height:3px;width:100%;z-index:60;pointer-events:none;opacity:0;transition:opacity .25s}
.pbar.on{opacity:1}
.pbar::before{content:"";position:absolute;left:0;top:0;height:100%;width:var(--p,30%);background:var(--ao);transition:width .2s}
.pbar.ind::before{width:35%;animation:pbar-ind 1.1s ease-in-out infinite}
@keyframes pbar-ind{0%{left:-35%}100%{left:100%}}
/* 右下の札 */
.lpill{position:fixed;right:16px;bottom:16px;z-index:55;background:var(--inv-bg);color:var(--inv-t);font-size:.8rem;padding:8px 12px;border-radius:20px;box-shadow:0 4px 14px rgba(16,21,27,.25);font-variant-numeric:tabular-nums;max-width:calc(100% - 32px)}
.lpill[hidden]{display:none}
/* 骨組み */
.skel{padding:8px 0}
.sk{background:linear-gradient(90deg,var(--line2) 25%,var(--bg2) 50%,var(--line2) 75%);background-size:200% 100%;animation:sk 1.3s linear infinite;border-radius:6px;margin:8px 0}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
.sk-head{display:flex;justify-content:space-between;gap:24px;background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:18px 24px;margin:16px 0 12px}
.sk-head>div:first-child{flex:1}.sk-k{display:flex;gap:10px}.sk-k .sk{margin:0}
.sk-sec{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:18px 24px;margin:14px 0}
.sk-2{display:grid;grid-template-columns:300px 1fr;gap:20px}
@media (max-width:900px){ .sk-2{grid-template-columns:1fr} .sk-k{display:none} }
@media (prefers-reduced-motion:reduce){ .sk,.pbar.ind::before{animation:none} }
/* 画面の切り替えのふわっとした表示 */
#app.fade{animation:fade .18s ease-out}
@keyframes fade{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ #app.fade{animation:none} }
/* エラー */
.err-box{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:28px 28px;margin:24px auto;max-width:34em}
.err-btns{display:flex;gap:10px;flex-wrap:wrap}
.btn-p,.btn-s{font:inherit;font-size:.92rem;border-radius:20px;padding:8px 18px;cursor:pointer;text-decoration:none;display:inline-block}
.btn-p{background:var(--ao);color:var(--on-ao);border:1px solid var(--ao)}
.btn-s{background:var(--card);color:var(--ao);border:1px solid var(--ao)}
/* パンくず */
.crumbs{width:var(--w);margin:10px auto 0;display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--muted);min-height:26px}
.crumbs[hidden]{display:none}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 0;min-width:0;flex:1}
.crumbs li{display:flex;align-items:center;min-width:0}
.crumbs li+li::before{content:"›";margin:0 6px;color:var(--line)}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--ao);text-decoration:underline}
.crumbs [aria-current]{color:var(--sumi);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:30em}
.cr-back,.cr-copy{font:inherit;font-size:.78rem;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:14px;padding:3px 10px;cursor:pointer;white-space:nowrap}
.cr-back:hover,.cr-copy:hover{color:var(--ao);border-color:var(--ao)}
@media (max-width:640px){ .cr-copy{display:none} .crumbs [aria-current]{max-width:14em} }
/* 上へ */
.totop{position:fixed;right:16px;bottom:64px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ao);font-size:1.1rem;cursor:pointer;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s;z-index:50}
.totop.on{opacity:1;pointer-events:auto}
@media print{ .totop,.lpill,.pbar,.crumbs{display:none !important} }
/* 吹き出し */
.tip{position:fixed;z-index:70;background:var(--inv-bg);color:var(--inv-t);font-size:.78rem;line-height:1.5;padding:6px 10px;border-radius:8px;max-width:22em;box-shadow:0 4px 14px rgba(16,21,27,.25);pointer-events:none;word-break:auto-phrase}
.tip[hidden]{display:none}
.tip::after{content:"";position:absolute;left:50%;bottom:-5px;margin-left:-5px;border:5px solid transparent;border-top-color:var(--sumi);border-bottom:0}
.tip.dn::after{bottom:auto;top:-5px;border-top:0;border-bottom:5px solid var(--sumi)}
[data-tip]{cursor:help}
a[data-tip],button[data-tip],th[data-tip]{cursor:pointer}
/* キーボードで移ったところを見せる */
:focus-visible{outline:2px solid var(--ao);outline-offset:2px;border-radius:4px}
.tbl tbody tr:hover td{background:var(--ao-bg2)}
/* ヘッダーの検索：ショートカットの印と、候補の群の見出し */
.hd-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:inherit;font-family:var(--mono);font-size:.7rem;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px;line-height:1.5;background:var(--card);pointer-events:none}
.hd-find input:focus~.hd-kbd{display:none}
.hd-find{max-width:360px}
.hf-h{margin:6px 10px 2px;font-size:.7rem;font-weight:700;color:var(--muted);letter-spacing:.04em}
.hf-h:empty{display:none}
.hf-note{font-weight:400;margin-top:6px;border-top:1px solid var(--line2);padding-top:6px}
.hf-pop{max-height:min(70vh,560px);overflow:auto}
/* 病院をさがす：いまの条件の札 */
.cond{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px;padding:10px 14px;background:var(--card);border:1px solid var(--line2);border-radius:var(--r)}
.cond[hidden]{display:none}
.cond-l{font-size:.78rem;font-weight:700;color:var(--muted);margin-right:4px}
.cond .chip-x{font-size:.82rem}
.cond-clr{font-size:.8rem;margin-left:6px;text-decoration:none;color:var(--muted)}
.cond-clr:hover{color:var(--ao);text-decoration:underline}
.cond-0{flex-basis:100%;margin:6px 0 0;font-size:.86rem;color:var(--warn-t)}
/* 入口の「誰のため」と、はじめての方へ */
.hero-who{margin:-14px 0 18px;font-size:.9rem;color:var(--muted)}
.hero-who a{margin-left:10px;white-space:nowrap}
.guide{max-width:56em}
.guide-3{counter-reset:g;list-style:none;margin:0;padding:0;display:grid;gap:12px}
.guide-3 li{position:relative;padding-left:44px;line-height:1.7}
.guide-3 li::before{counter-increment:g;content:counter(g);position:absolute;left:0;top:2px;width:30px;height:30px;border-radius:50%;background:var(--ao-bg);color:var(--ao);font-weight:700;display:flex;align-items:center;justify-content:center;font-family:var(--mono)}
.guide-3 b{display:block;font-size:1rem}
.guide-3 a{margin-left:8px;white-space:nowrap}
.guide kbd{font-family:var(--mono);border:1px solid var(--line);border-radius:4px;padding:0 5px;font-size:.85em;background:var(--card)}
.guide ul{padding-left:1.3em;line-height:1.75}
@media (max-width:640px){ h1{word-break:normal;overflow-wrap:break-word} }
/* 幅の狭い画面の検索ボタン：押すとヘッダーの下に検索窓が出る */
.hd-sbtn{display:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);background:var(--page);color:var(--sumi);cursor:pointer;align-items:center;justify-content:center;flex:0 0 auto}
.hd-sbtn[aria-expanded="true"]{background:var(--ao);color:var(--on-ao);border-color:var(--ao)}
@media (max-width:1100px){
  .hd-sbtn{display:inline-flex}
  body.hs-open .hd-find{display:block !important;position:absolute;left:12px;right:12px;top:100%;max-width:none;margin:6px 0 0;z-index:35}
  body.hs-open .hd-find input{background-color:var(--card);box-shadow:0 8px 24px rgba(16,21,27,.16)}
  .hs-open .hf-pop{min-width:0}
}
@media (max-width:640px){ .hd-sbtn{position:absolute;right:16px;top:10px} }
/* 審査の取扱いの要旨（A73 §4） */
.sh-head{font-size:.82rem;color:var(--muted);background:var(--page);border-left:3px solid var(--line);padding:8px 12px;border-radius:0 8px 8px 0;margin:0 0 12px}
.sh-y{margin:6px 0}.sh-y p{margin:4px 0 0}
.sh-y .sh-r{font-size:.82rem;color:var(--muted)}
.bd-y{background:var(--warn-bg);color:var(--warn-t)}
/* 病院を比べる（U11）：加える欄・候補・違いだけ・左の列を固定 */
.cmp-add{margin:14px 0 18px;background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:14px 16px}
.cmp-in{position:relative;max-width:34em}
.cmp-in input.in{width:100%;max-width:none;padding:9px 12px;border-radius:20px}
.cmp-in .hf-pop{min-width:0}
.cmp-cand{padding:6px}
.cmp-cand button.hf-i{width:100%;border:0;background:none;font:inherit;text-align:left;cursor:pointer}
.cmp-cand button.hf-i[disabled]{opacity:.45;cursor:default}
.cmp-sugg{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px 24px;margin-top:12px}
.cmp-sg-h{margin:0 0 6px;font-size:.78rem;font-weight:700;color:var(--muted)}
.cmp-sg{display:flex;flex-wrap:wrap;gap:6px}
.cmp-sg .chip{cursor:pointer;font:inherit;font-size:.82rem;background:var(--card)}
.cmp-sg .chip:hover{border-color:var(--ao);background:var(--ao-bg)}
.cmp-one{background:var(--ao-bg);color:var(--ao);border-radius:8px;padding:10px 14px;margin:10px 0 0;font-size:.9rem}
.cmp-tools{margin:0 0 6px}
#app.cmp-diff table.cmp tbody tr.same{display:none}
.tbl.cmp th.rh{position:sticky;left:0;background:var(--card);z-index:1;box-shadow:1px 0 0 var(--line2)}
.tbl.cmp thead th:first-child{position:sticky;left:0;background:var(--bg2);z-index:2}
/* 比較の表：列の幅をそろえる */
@media (min-width:641px){ .tbl.cmp{table-layout:fixed;width:100%} .tbl.cmp th.rh,.tbl.cmp thead th:first-child{width:12em} }
@media (max-width:640px){ .tbl.cmp th.rh{min-width:7.5em} .tbl.cmp thead th{min-width:10em} }
/* 索引（U11） */
.sk-top{position:sticky;top:0;z-index:12;background:var(--page);padding:8px 0 10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sk-top input.in{flex:1 1 20em;max-width:30em;border-radius:20px;padding:9px 14px}
.sk-toc{display:flex;flex-wrap:wrap;gap:6px}
.sk-toc a{font-size:.84rem;text-decoration:none;border:1px solid var(--line2);background:var(--card);border-radius:16px;padding:4px 12px;color:var(--sumi)}
.sk-toc a:hover{border-color:var(--ao);color:var(--ao)}
section.sec[id^="sk-"]{scroll-margin-top:70px}
.sk-dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 20px;margin:0}
.sk-dl dt{font-weight:700;color:var(--sumi)}
.sk-dl dd{margin:0;color:var(--muted);font-size:.92rem;line-height:1.7}
.sk-dl [hidden]{display:none}
@media (max-width:640px){ .sk-dl{grid-template-columns:1fr;gap:2px} .sk-dl dd{margin-bottom:10px} }
.sk-areas{columns:3 18em;column-gap:28px}
.sk-pref{break-inside:avoid;margin:0 0 14px}
.sk-pref[hidden],.sk-as a[hidden],.sk-pages li[hidden],.sk-ch a[hidden]{display:none}
.sk-pn{margin:0 0 4px;font-weight:700}
.sk-pn a{text-decoration:none;color:var(--sumi)}
.sk-as{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.9rem}
.sk-as a{text-decoration:none}.sk-as a:hover{text-decoration:underline}
.sk-ch{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.sk-ch a{text-decoration:none;color:var(--sumi);padding:6px 8px;border-radius:8px}
.sk-ch a:hover{background:var(--ao-bg);color:var(--ao)}
.sk-pages{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.sk-pages li{display:flex;gap:12px;flex-wrap:wrap;align-items:baseline}
.sk-pages a{font-weight:600;min-width:10em}
.sk-keys kbd,.keys-dlg kbd{font-family:var(--mono);font-size:.82rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 7px;background:var(--card);color:var(--sumi)}
.keys-dlg{border:0;border-radius:14px;padding:22px 26px;max-width:min(34em,calc(100% - 32px));box-shadow:0 20px 50px rgba(16,21,27,.25)}
.keys-dlg::backdrop{background:rgba(16,21,27,.35)}
.keys-dlg h2{margin-top:0}
.sk-pn .muted{font-weight:400;font-size:.84rem}
/* ===== U12 病院の1枚まとめ（A83） ===== */
.sheet-btn{text-decoration:none;display:inline-block}
.sheet-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0}
.sheet{background:var(--card);border:1px solid var(--line2);border-radius:6px;box-shadow:var(--shadow);width:min(210mm,100%);margin:0 auto 24px;padding:14mm 13mm 10mm;font-size:12.5px;line-height:1.55;color:var(--sumi)}
.sh-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:10.5px;color:var(--muted);border-bottom:2px solid var(--ao);padding-bottom:5px;margin-bottom:10px}
.sh-brand{font-weight:700;color:var(--ao)}
.sheet h1{font-size:21px;margin:4px 0 2px;line-height:1.35}
.sh-sub{margin:0 0 10px;color:var(--muted);font-size:11.5px}
.sh-kpi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0 0 12px}
.sh-k{background:var(--page);border-radius:6px;padding:7px 9px}
.sh-k p{margin:0}
.sh-kl{font-size:10px;color:var(--muted);font-weight:700}
.sh-kv{font-size:17px;font-weight:700;font-family:var(--mono);color:var(--ao);font-variant-numeric:tabular-nums;line-height:1.3}
.sh-ks{font-size:9.5px;color:var(--muted);line-height:1.35}
.sh-2{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
.sheet h2{font-size:12.5px;margin:10px 0 5px;padding:0 0 3px;border-bottom:1px solid var(--line2);border-left:0}
.sheet h2::before{display:none}
.sh-bar{display:grid;grid-template-columns:7.5em 1fr 4.6em;gap:6px;align-items:center;font-size:11px;margin:2px 0}
.sh-bl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-bt{height:9px;background:var(--page);border-radius:3px;overflow:hidden}
.sh-bt i{display:block;height:100%;background:var(--ao);border-radius:3px}
.sh-bv{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
.sh-n{font-size:10px;color:var(--muted);margin:3px 0 0}
.sh-list{margin:0;padding-left:1.1em;font-size:11px;columns:1}
.sh-list li{margin:1px 0}
.sh-dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:0;font-size:11px}
.sh-dl dt{color:var(--muted)}.sh-dl dd{margin:0;font-family:inherit}
.sh-foot{margin-top:12px;border-top:1px solid var(--line2);padding-top:6px;font-size:9.5px;color:var(--muted)}
.sh-foot p{margin:2px 0}
@media (max-width:700px){ .sheet{padding:16px 14px;font-size:13px} .sh-kpi{grid-template-columns:repeat(2,minmax(0,1fr))} .sh-2{grid-template-columns:1fr} }
@media print{
  @page{size:A4 portrait;margin:8mm}
  body:has(.sheet) header.site,body:has(.sheet) .site-foot,body:has(.sheet) #jiten,body:has(.sheet) .crumbs,body:has(.sheet) .no-print,body:has(.sheet) .cmpbar{display:none !important}
  body:has(.sheet){background:var(--card)}
  body:has(.sheet) main{width:auto;padding:0}
  .sheet{border:0;box-shadow:none;border-radius:0;width:auto;margin:0;padding:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
/* マイページ：前回からの変化 */
.mk-chg{display:inline-block;font-size:.72rem;font-weight:700;border-radius:8px;padding:0 6px;margin-top:2px;max-width:100%;word-break:auto-phrase}
.mk-chg.up{background:var(--ao-bg);color:var(--ao)}
.mk-chg.dn{background:var(--neg-bg);color:var(--neg)}
.pos-g2{color:var(--warn-t)}
/* 圏域の1枚まとめ */
.sh-bar2{grid-template-columns:6em 1fr 5.4em 3.8em}
.sh-bar2 .sh-bt{position:relative;overflow:visible}
.sh-bar2 .sh-bt b{position:absolute;top:-3px;width:2px;height:15px;background:var(--sumi);margin-left:-1px}
.sh-need{color:var(--muted)}
.sh-bh{display:grid;grid-template-columns:6em 1fr 5.4em 3.8em;gap:6px;font-size:9.5px;color:var(--muted);text-align:right}
.sh-t{width:100%;border-collapse:collapse;font-size:11px}
.sh-t th{font-size:9.5px;color:var(--muted);font-weight:700;text-align:right;border-bottom:1px solid var(--line2);padding:2px 4px}
.sh-t th:first-child{text-align:left}
.sh-t td{padding:2px 4px;border-bottom:1px dotted var(--line2);font-variant-numeric:tabular-nums}
.sh-t td+td{text-align:right;white-space:nowrap}
.sh-p{margin:0 0 4px;font-size:11px}
.sh-t td,.sh-t th{font-weight:400}.sh-t th{font-weight:700}
/* 病院をさがす：よく使う条件 */
.presets{margin:0 0 12px}
.presets-h{margin:0 0 6px;font-size:.76rem;font-weight:700;color:var(--muted)}
.presets-c{display:flex;flex-wrap:wrap;gap:6px}
.presets-c .chip{font-size:.8rem;text-decoration:none;background:var(--card)}
.presets-c .chip:hover{border-color:var(--ao);background:var(--ao-bg)}
/* 二次医療圏を比べる */
.tbl.ca td.ca-max{font-weight:700;color:var(--ao)}
.tbl.ca td.ca-min{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.tbl.ca .unit{font-size:.78em;color:var(--muted);margin-left:2px}
.tbl.ca .pos{color:var(--ao)}.tbl.ca .neg{color:var(--neg)}
.tbl.ca thead th .ca-pref{display:block;font-weight:400;font-size:.76rem;color:var(--muted)}.ca-need{display:block;margin:0}
.sub-link{margin-left:12px;white-space:nowrap}
/* 直近の変化（U14） */
.chg{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.chg-r{background:var(--page);border-radius:10px;padding:10px 14px}
.chg-r p{margin:0}
.chg-l{font-size:.76rem;font-weight:700;color:var(--muted);margin-bottom:4px !important}
.chg-v{font-size:.95rem;line-height:1.6}
.chg-s{font-size:.8rem;color:var(--muted);margin-top:3px !important}
.chg-up,.chg-dn,.chg-eq{font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums}
.chg-up{color:var(--ao)}.chg-dn{color:var(--neg)}.chg-eq{color:var(--muted)}
/* ===== U16 組み合わせの指標（A87） ===== */
.card.ins-only{display:none}
body.has-ins .card.ins-only{display:block}
.ins-bd{display:inline-block;margin:0 0 10px}
.ins-warn{border-left:3px solid #E8A33D;padding-left:12px}
.ins-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:0 0 14px}
.ins-k{background:var(--page);border-radius:10px;padding:10px 14px}
.ins-k p{margin:0}
.ins-kl{font-size:.76rem;font-weight:700;color:var(--muted)}
.ins-kv{font-size:1.25rem;font-weight:700;color:var(--ao);font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1.35;word-break:auto-phrase}
.ins-ks{font-size:.78rem;color:var(--muted);line-height:1.45}
.ins h3{font-size:.95rem;margin:14px 0 6px}
.ins-both{margin-left:6px;font-size:.68rem}
.keika{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}
.keika li{border:1px solid var(--line2);border-radius:10px;padding:8px 12px;background:var(--card)}
.keika-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.keika-d{font-size:.78rem;color:var(--muted)}
.keika details{margin-top:4px}.keika summary{font-size:.82rem;color:var(--ao);cursor:pointer}
.keika details p{font-size:.88rem;margin:4px 0}
.ar-t tr.ar-ng td{color:var(--muted)}
.ar-t .unit{font-size:.74rem;color:var(--muted)}
.lazy{min-height:80px}
.occ{display:grid;gap:6px;margin:6px 0 4px}
.occ-r{display:grid;grid-template-columns:8em 1fr 4.5em;gap:10px;align-items:center;font-size:.88rem}
.occ-t{position:relative;height:14px;background:var(--page);border-radius:4px}
.occ-t i{display:block;height:100%;background:var(--ao);border-radius:4px;opacity:.85}
.occ-t i.over{background:var(--neg)}
.occ-t b{position:absolute;top:-3px;height:20px;width:2px}
.occ-100{background:var(--line);border-left:2px dashed var(--muted2);width:0 !important}
.occ-now{background:var(--sumi)}
.occ-v{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
.occ-lg-now,.occ-lg-100{display:inline-block;width:0;height:12px;margin-right:6px;vertical-align:-1px}
.occ-lg-now{border-left:2px solid var(--sumi)}.occ-lg-100{border-left:2px dashed var(--muted2)}
.ins-more{margin:8px 0}.ins-more summary{cursor:pointer;color:var(--ao);font-size:.86rem}
@media (max-width:640px){ .occ-r{grid-template-columns:6.5em 1fr 4em} }
.tbl td.nw{white-space:nowrap}
/* 入口：新しく取り込んだデータ */
.fresh{margin:18px 0 8px}
.fresh-h{display:flex;gap:14px;align-items:baseline;margin:0 0 8px !important}
.fresh-h a{font-weight:400;font-size:.8rem}
.fresh ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px 18px}
.fresh li{display:flex;gap:10px;align-items:baseline;font-size:.88rem;padding:6px 0;border-bottom:1px solid var(--line2)}
.fresh-t{font-family:var(--mono);font-size:.8rem;color:var(--ao);white-space:nowrap;min-width:8.5em}
/* 届出の系統（U18） */
.tdk-sib{margin:10px 0 4px;font-size:.88rem}
.tdk-sib summary{cursor:pointer;color:var(--ao)}
.tdk-sibl{list-style:none;padding:0;margin:6px 0;display:grid;gap:4px}
.tdk-sibl li{display:flex;flex-wrap:wrap;gap:4px 14px;padding:5px 0;border-bottom:1px dashed var(--line2)}
.tdk-sib-m{color:var(--ao);font-size:.84rem}
.tdk-sib-c{color:var(--ao);font-size:.84rem}
.rk-own{margin:0 0 10px}
.rk-sub{font-size:.8rem;font-weight:700;color:var(--muted);margin:12px 0 4px}
.rk-ment{margin:10px 0}.rk-ment summary{cursor:pointer;color:var(--ao);font-size:.86rem}
.rk-mh{display:block;flex-basis:100%;font-size:.78rem;color:var(--muted);margin-top:2px}
/* U17b 届出の系統の根拠 */
.tdk-kei{font-size:.8rem;color:var(--muted,var(--muted));white-space:nowrap}
a.tdk-kei{color:inherit;text-decoration:underline dotted}
/* U18 使い方：ヘッダーのボタン・横の欄・早見表、外部リンクの印 */
.hd-help{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border-radius:16px;border:1px solid var(--line2);background:var(--page);color:var(--sumi);font:inherit;font-size:.85rem;cursor:pointer;flex:0 0 auto;white-space:nowrap}
.hd-help:hover{border-color:var(--ao);color:var(--ao)}
.hd-help-i{display:none;font-weight:700}
@media (max-width:1100px){ .hd-help{width:36px;height:36px;padding:0;justify-content:center;border-radius:50%} .hd-help-t{display:none} .hd-help-i{display:inline} }
.help-dlg{border:0;margin:0 0 0 auto;height:100%;max-height:100%;width:min(34em,100%);max-width:100%;padding:18px 22px 28px;box-shadow:-12px 0 40px rgba(16,21,27,.2);overflow:auto;background:var(--page,#fff)}
.help-dlg::backdrop{background:rgba(16,21,27,.3)}
.help-dlg[open]{animation:hp-in .18s ease-out}
@keyframes hp-in{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
.hp-head{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}
.hp-head h2{margin:0;font-size:1.1rem;line-height:1.5}
.hp-x{border:0;background:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--muted);padding:0 4px}
.hp-what{margin:10px 0 12px;color:var(--sumi)}
.hp-ops{width:100%;border-collapse:collapse;font-size:.88rem;margin:6px 0 12px}
.hp-ops th{text-align:left;font-size:.78rem;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:4px 6px}
.hp-ops td{vertical-align:top;border-bottom:1px solid var(--line);padding:7px 6px;line-height:1.55}
.hp-ops td:first-child{width:44%;font-weight:600;color:var(--sumi)}
.hp-sec{margin:6px 0}
.hp-sec>summary{font-weight:600}
.hp-foot{margin-top:14px;font-size:.88rem}
.hp-toc{display:flex;flex-wrap:wrap;gap:6px 14px;margin:6px 0 14px;font-size:.9rem}
.hp-scr{margin:18px 0 8px;scroll-margin-top:80px}
.hp-scr h3{margin:0 0 4px;font-size:1rem}
#g-common,#g-manual{scroll-margin-top:80px}
@media (max-width:520px){ .hp-ops td:first-child{width:auto} .hp-ops tr{display:grid} .hp-ops thead{display:none} .hp-ops td{border-bottom:0;padding:4px 6px} .hp-ops tr{border-bottom:1px solid var(--line);padding:4px 0} }
#app a[target="_blank"]:not(.btn-sub2):not(.chip):not(.tdk-kei)::after,#app a[href*=".pdf"]:not([target="_blank"])::after{content:"↗";font-size:.72em;margin-left:2px;vertical-align:.25em;opacity:.7}
@media print{ .hd-help{display:none} #app a[target="_blank"]::after,#app a[href*=".pdf"]::after{content:""} }
/* U19 病棟の一般・療養の別が報告から決まらない病棟 */
td.kb-unk{white-space:nowrap}
td.kb-unk small{display:block;color:var(--muted);font-size:.72rem;line-height:1.3}
.kb-how{margin-left:2px;color:var(--ao);font-size:.75em;cursor:help;vertical-align:.3em}

/* U19 幅 1000px 以下はナビを「メニュー」に畳む（ヘッダーを1行に） */
.hd-menu{display:none;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--line2);background:var(--page);color:var(--sumi);font:inherit;font-size:.85rem;cursor:pointer;flex:0 0 auto}
.hd-menu[aria-expanded="true"]{background:var(--ao);color:var(--on-ao);border-color:var(--ao)}
@media (max-width:1000px){
  body>header.site{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;padding-top:10px;padding-bottom:10px}
  body>header.site .brand{margin-right:auto}
  .hd-menu{display:inline-flex}
  .hd-sbtn,.hd-help{position:static !important}
  .site-nav{display:none !important}
  body.nav-open .site-nav{display:flex !important;flex-direction:column;align-items:stretch;gap:2px;position:absolute;right:12px;top:calc(100% + 6px);width:min(260px,calc(100% - 24px));background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:8px;box-shadow:0 12px 32px rgba(16,21,27,.18);z-index:40;overflow:visible;white-space:normal}
  body.nav-open .site-nav a{padding:10px 12px;font-size:.95rem;border-radius:8px}
  body.nav-open .site-nav a.acct{text-align:center;margin-top:4px}
}
@media (max-width:640px){ .hd-menu{width:36px;padding:0;justify-content:center;border-radius:50%} .hd-menu-t{display:none} }
@media print{ .hd-menu{display:none !important} }
/* U20 入口の二次医療圏の地図：大きな地図と横の欄 */
.ms-box{margin:8px 0 28px}
.sk-map{height:clamp(520px,calc(100vh - 170px),820px);border-radius:12px}
.ms{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:stretch}
.ms-side{display:flex;flex-direction:column;gap:12px;height:0;min-height:100%}
.ms-ctl{display:grid;grid-template-columns:minmax(220px,1.1fr) auto minmax(150px,.6fr) minmax(220px,1fr);gap:10px 16px;align-items:end;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:12px}
@media (max-width:1400px){ .ms-ctl{grid-template-columns:1.2fr .7fr 1fr} .ms-l-rg{grid-column:1 / -1;order:-1} }
.ms-mapc{min-width:0}
.ms-card{flex:none;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-height:72px}
.ms-lw{flex:1 1 0;background:var(--card);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;min-height:180px;overflow:hidden}
.ms-map{height:clamp(520px,calc(100vh - 240px),780px);border:1px solid var(--line);border-radius:12px;background:var(--bg2,var(--bg2))}
.ms-map:focus-visible{outline:2px solid var(--ao);outline-offset:2px}
.ms-l{display:grid;gap:5px;font-size:.8rem;font-weight:600;color:var(--muted)}
.ms-l .in{width:100%;font-weight:400}
.ms-rgs{display:flex;flex-wrap:wrap;gap:6px}
.ms-rg{font:inherit;font-size:.84rem;font-weight:600;color:var(--sumi);background:var(--card);border:1px solid var(--line2,var(--line3));border-radius:16px;padding:4px 11px;cursor:pointer}
.ms-rg:hover{border-color:var(--ao);color:var(--ao)}
.ms-rg[aria-pressed="true"]{background:var(--ao);border-color:var(--ao);color:var(--on-ao)}
.ms-q{position:relative}
.ms-sug{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:var(--card);border:1px solid var(--line2,var(--line3));border-radius:10px;box-shadow:0 10px 28px rgba(16,21,27,.16);z-index:500;padding:4px;max-height:320px;overflow:auto}
.ms-sug button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:7px;font:inherit;font-size:.9rem;font-weight:400;color:var(--sumi);cursor:pointer}
.ms-sug button small{color:var(--muted);font-size:.78rem;white-space:nowrap}
.ms-sug button.on,.ms-sug button:hover{background:var(--ao-bg,var(--ao-bg))}
.ms-sug p{margin:6px 10px;font-weight:400}
.ms-hint{margin:6px 2px 0;font-size:.78rem;color:var(--muted)}
.ms-lg{margin-top:6px}
.ms-ph{margin:0;color:var(--muted);font-size:.88rem}
.ms-cp{margin:0;font-size:.78rem;color:var(--muted)}
.ms-cn{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin:2px 0 6px;font-size:1.2rem}
.ms-x{border:0;background:none;color:var(--muted);font-size:1.2rem;line-height:1;cursor:pointer;padding:0 2px}
.ms-cv{margin:0 0 8px;display:flex;flex-direction:column;gap:2px}
.ms-ci{font-size:.78rem;color:var(--muted)}
.ms-cv strong{font-size:1.35rem;font-variant-numeric:tabular-nums;color:var(--sumi)}
.ms-rk{display:grid;gap:4px;margin:0 0 10px}
.ms-rk div{display:flex;justify-content:space-between;gap:8px;font-size:.86rem;border-top:1px dashed var(--line);padding-top:4px}
.ms-rk dt{color:var(--muted)} .ms-rk dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.ms-rk small{font-weight:400;color:var(--muted);margin-left:2px}
.ms-act{display:flex;flex-wrap:wrap;gap:6px}
.ms-act .btn{padding:7px 14px;font-size:.88rem}
.ms-lh{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:.84rem;font-weight:600}
.ms-ord{font:inherit;font-size:.8rem;border:1px solid var(--line2,var(--line3));background:var(--card);border-radius:14px;padding:2px 10px;cursor:pointer;color:var(--sumi)}
.ms-list{list-style:none;margin:0;padding:4px;overflow:auto;min-height:0}
.ms-list button{display:grid;grid-template-columns:2.4em minmax(0,1fr) 64px 5.6em;align-items:center;gap:6px;width:100%;border:0;background:none;text-align:left;padding:6px 6px;border-radius:7px;font:inherit;font-size:.86rem;color:var(--sumi);cursor:pointer}
.ms-list li.hov button,.ms-list button:hover,.ms-list button:focus-visible{background:var(--ao-bg,var(--ao-bg))}
.ms-list li.on button{background:var(--hot-bg);box-shadow:inset 3px 0 0 #E0631C}
.ms-n{color:var(--muted);font-size:.78rem;text-align:right;font-variant-numeric:tabular-nums}
.ms-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-nm small{margin-left:6px;color:var(--muted);font-size:.74rem}
.ms-b{height:6px;background:var(--line);border-radius:3px;overflow:hidden} .ms-b i{display:block;height:100%;background:var(--ao)}
.ms-v{text-align:right;font-variant-numeric:tabular-nums;font-size:.84rem}
.ms-none{opacity:.6}
.ar-lb{background:none;border:0;pointer-events:none}
.ar-lb span{display:inline-block;transform:translate(-50%,-50%);white-space:nowrap;font-size:11px;font-weight:600;color:var(--sumi);text-shadow:0 0 3px var(--card),0 0 3px var(--card),0 0 2px var(--card)}
.ar-lb.on span{color:var(--hot);font-size:12px}
@media (max-width:1000px){
  .ms{display:flex;flex-direction:column;gap:12px}
  .ms-side{display:contents}
  .ms-mapc{order:1} .ms-card{order:2} .ms-lw{order:3;flex:none}
  .ms-map,.sk-map{height:clamp(360px,62vh,640px)}
  .ms-lw{max-height:420px;min-height:0}
  .ms-ctl{padding:12px}
}
@media (max-width:640px){ .ms-ctl{grid-template-columns:1fr} 
}
@media (max-width:640px){ .ms-rgs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px} .ms-rgs::-webkit-scrollbar{display:none} .ms-rg{flex:0 0 auto} }
@media print{ .ms{display:block} .ms-ctl,.ms-lw,.ms-hint{display:none} }

/* U21 画面の幅を 1600px まで。文の段落は読める幅（1行 70字ほど）にとどめ、図は広げる */
#app p{max-width:70em}
#app .ms p,#app .ms-hint,#app td p,#app .card p,#app .ic p,#app .kfacts p{max-width:none}
/* 文を1つずつの塊にして、行を文の切れ目で折る（幅が足りないときは文の中でも折れる） */
.sent{display:inline-block}
/* U22 サーバが差し込んだ見出しとパンくず（画面の JavaScript が描くまでの間だけ見える） */
.ssr-crumbs{font-size:.82rem;color:var(--muted);margin:12px 0 4px}
.ssr-crumbs a{color:inherit}
/* U23 今日のトピック・補助金・期限が近い経過措置・今日の1枚 */
.hn-box{margin:18px 0 8px}
.hn-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}
.hn-grid.no-tp{grid-template-columns:1fr}
.hn-grid.no-tp .hn-side{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
/* トピックが無い日は、札を全幅にして中身を横に並べる（縦の空白を作らない） */
.hn-grid.no-tp .hn-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 18px}
.hn-grid.no-tp .hn-list li{border-top:0;padding-top:0;border-left:1px dashed var(--line);padding-left:12px}
.hn-grid.no-tp .hn-list li:first-child{border-left:0;padding-left:0}
.hn-grid.no-tp .hn-1m{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 16px}
.hn-grid.no-tp .hn-1m .hn-h{margin:0}
.hn-grid.no-tp .hn-1m .hn-1m-c{flex:1 1 20em;display:flex;gap:4px 14px;align-items:baseline;flex-wrap:wrap;padding:8px 12px}
.hn-side{display:grid;gap:16px}
.hnb{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.hn-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.hn-h h2{margin:0;font-size:1.05rem}
.hn-more{margin-left:auto;font-size:.84rem}
.hn-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hn-list li{display:grid;gap:2px;border-top:1px dashed var(--line);padding-top:8px}
.hn-list li:first-child{border-top:0;padding-top:0}
.hn-sub{font-size:.8rem;color:var(--muted)}
.hn-sub b{margin-left:8px;font-weight:700;color:var(--sumi)}
.hn-sub b.hot,.hj b.hot{color:var(--hot)}
.hn-1m-c{display:grid;gap:4px;text-decoration:none;color:var(--sumi);padding:10px 12px;border-radius:10px;background:var(--ao-bg,var(--ao-bg))}
.hn-1m-c strong{color:var(--ao)} .hn-1m-c span{font-size:.84rem}
.tp{border-top:1px solid var(--line);padding:10px 0}
.hnb .tp:first-of-type{border-top:0}
.tp-h{margin:0 0 4px;font-size:1rem;line-height:1.5}
.tp-s{margin:0 0 4px;font-size:.92rem}
.tp-pt{margin:0 0 4px;font-size:.88rem;color:var(--sumi);background:var(--bg2);border-radius:8px;padding:6px 10px}
.tp-pt-l{font-weight:700;color:var(--ao);margin-right:6px}
.tp-m{margin:0;font-size:.8rem;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tp-l{margin:6px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.tp-day{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px 18px;margin:12px 0}
.tp-nav{display:flex;justify-content:space-between;gap:12px;margin:16px 0;font-size:.9rem}
.tp-days{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.tp-days>li>ul{margin:4px 0 0;padding-left:1.2em;font-size:.88rem;color:var(--sumi)}
.hj-f{flex-wrap:wrap}
.hj-list{display:grid;gap:10px;margin:10px 0}
.hj{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.hj h3{margin:0 0 6px;font-size:1rem}
.hj-m{margin:0;display:flex;gap:6px 14px;flex-wrap:wrap;font-size:.84rem;color:var(--muted);align-items:center}
.hj-s{margin:6px 0 0;font-size:.9rem}
@media (max-width:1000px){ .hn-grid{grid-template-columns:1fr} .hn-grid.no-tp .hn-side{grid-template-columns:1fr} }

/* U24　幅の狭い画面の見出しの数字：隙間なく横に並べる */
@media (max-width:640px){
  .phead dl.kfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .phead dl.kfacts:has(>div:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
  .phead dl.kfacts>div{min-width:0;padding:8px 10px}
  .phead dl.kfacts dd{font-size:1.1rem;white-space:nowrap}
}
details.fn-more{margin:2px 0 8px}
details.fn-more>summary{cursor:pointer;font-size:.8rem;color:var(--ao)}
details.fn-more>p.fnote{margin-top:4px}

/* U25　注記・出所を目立たせない：小さく淡く、長いものは1行に畳む */
.fnote,.tbl-src{font-size:.78rem;color:var(--muted2);line-height:1.55}
.fnote a,.tbl-src a{color:inherit;text-decoration:underline;text-decoration-color:var(--line3)}
.fn-grp{margin:6px 0 0}
.fn-grp>*{margin:0 0 4px}
.fn-grp.fn-c:not(.fn-open)>:first-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;overflow:hidden;margin:0}
.fn-grp.fn-c:not(.fn-open)>:not(:first-child){display:none}
button.fn-t{display:block;border:0;background:none;padding:0 0 2px;margin:1px 0 12px;font:inherit;font-size:.72rem;color:var(--muted2);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line3)}
button.fn-t:hover{color:var(--ao)}
details.fn-more>summary{color:var(--muted2);font-size:.74rem}
/* このページのデータの時点：枠をやめて、細い1行に */
.jiten{background:none;border:0;border-radius:0;padding:2px 0;margin-top:6px;font-size:.78rem;color:var(--muted2);box-shadow:none}
.jiten-label{font-weight:600;color:var(--muted)}
/* 但し書きの箱：白い箱をやめて、淡い地に */
.caution{background:var(--bg2);border:0;border-left:3px solid var(--line3);font-size:.86rem;padding:8px 12px}
@media print{ .fn-grp.fn-c>*{display:block !important;-webkit-line-clamp:unset !important;overflow:visible !important} button.fn-t{display:none} }
.munis{margin:4px 0 8px;line-height:1.8}
.munis-h{display:inline-block;margin-right:10px;font-size:.8rem;font-weight:700;color:var(--muted)}
/* U26 */
.gl-pop .gl-it{display:block}
.gl-pop .gl-it+.gl-it{margin-top:6px}
.fn-bar{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;margin:1px 0 12px}
.fn-bar button.fn-t{margin:0}
.fn-bar a.fn-l{font-size:.78rem}
.coef-empty{font-size:.8rem;margin:6px 0 0}
/* U27　比べる表の見出しの列を広く（「2040年の人口（2020年比）」が1行に入る） */
@media (min-width:641px){ .tbl.cmp th.rh,.tbl.cmp thead th:first-child{width:15em} }
/* 全国の二次医療圏の一覧：表の中で縦に送り、見出しの行を上に留める */
.tw:has(>table.ar-t){max-height:78vh;overflow:auto;border:1px solid var(--line2);border-radius:8px}
.tw>table.ar-t thead th{position:sticky;top:0;z-index:2;background:var(--bg2)}
.kp{display:inline-block}
#app h1:has(>.kp){word-break:keep-all;overflow-wrap:anywhere}
.jiten.jiten-in{width:auto;margin:2px 0 10px;padding:0}
/* U28　施設基準をさがす：届出名を省略しない（「…1」「…2」の違いが末尾にあるため）。幅の狭い画面では名前を1行目、棒と院数を2行目に */
ul.kj-rows a{display:inline;-webkit-line-clamp:unset;overflow:visible;white-space:normal}
@media (max-width:640px){
  ul.kj-rows li{grid-template-columns:minmax(0,1fr) 4.6em 26px;row-gap:2px}
  ul.kj-rows li>.kj-nmw{grid-column:1 / -1}
}
/* 病院のページの届出の並び：届出名を省略しない */
ul.tdk-bars a{white-space:normal;overflow:visible;line-height:1.45}
.mc-list a span:first-child{white-space:normal;overflow:visible}

/* ===================================================================== U29 入口の役割・アイコン・動き（A99 段1） */
svg.icn{display:inline-block;vertical-align:-.2em;flex:none;stroke-width:1.75}
.hero2{margin:26px 0 8px}
.hero2 h1{font-size:2rem;margin:0 0 6px;letter-spacing:.01em}
.hero-count{margin:0 0 16px;color:var(--muted);font-size:.95rem}
.hero-count .hc-n{color:var(--sumi);font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums}
.hero-count a{margin-left:10px;white-space:nowrap}
.hero2 .site-find{margin:0 0 18px}
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 12px}
.role{display:flex;gap:14px;align-items:center;min-width:0;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;
  background:var(--card);border:1.5px solid var(--line2);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow);
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.role:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(16,21,27,.09)}
.role.on{border-color:var(--ao);box-shadow:0 0 0 3px color-mix(in srgb,var(--ao) 16%,transparent)}
.role-i{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--ao-bg);color:var(--ao);transition:background .15s,color .15s}
.role.on .role-i{background:var(--ao);color:var(--on-ao)}
.role-t{min-width:0;display:flex;flex-direction:column;gap:2px}
.role-t b{font-size:1.02rem;line-height:1.4}
.role-t small{font-size:.8rem;color:var(--muted);line-height:1.5}
.rp-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}
.rp-wrap.no-side{grid-template-columns:minmax(0,1fr)}
.role-panel{background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:14px 14px 10px;box-shadow:var(--shadow)}
.rp-h{margin:0 4px 8px;font-size:.88rem;color:var(--muted)}
.rp-h b{color:var(--sumi);font-size:.95rem}
ul.rq{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px}
a.rq-a{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;text-decoration:none;color:var(--sumi);transition:background .15s}
a.rq-a:hover,a.rq-a:focus-visible{background:var(--ao-bg)}
.rq-i{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--page);color:var(--ao)}
a.rq-a:hover .rq-i{background:var(--card)}
.rq-t{flex:1;min-width:0;display:flex;flex-direction:column}
.rq-t b{font-weight:600;font-size:.95rem;line-height:1.45}
.rq-t small{font-size:.78rem;color:var(--muted);line-height:1.45}
svg.rq-c{color:var(--muted);opacity:0;transform:translateX(-4px);transition:opacity .15s,transform .15s}
a.rq-a:hover svg.rq-c{opacity:1;transform:none}
.rp-in{animation:rpIn .22s ease both}
@keyframes rpIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* 最近見たページ：役割パネルの下に横1列（入口の空白をなくす。2026-09-28） */
.rp-wrap .recent{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;margin:0;overflow-x:auto;scrollbar-width:thin;padding:2px 0 4px}
.rp-wrap .recent .rc-h{flex:none;margin:0 4px 0 0}
.rp-wrap .recent .rc{flex:none;display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line2);border-radius:999px;padding:4px 12px 4px 6px;background:var(--card);font-size:.84rem;text-decoration:none;color:var(--sumi);white-space:nowrap;max-width:22em;overflow:hidden;text-overflow:ellipsis}
.rp-wrap .recent .rc:hover{border-color:var(--ao);color:var(--ao)}
@media (max-width:1100px){ ul.rq{grid-template-columns:repeat(2,minmax(0,1fr))} .rp-wrap{grid-template-columns:minmax(0,1fr)} }
@media (max-width:760px){
  .hero2 h1{font-size:1.45rem}
  .roles{grid-template-columns:1fr;gap:8px}
  .role{padding:10px 12px}.role-i{width:36px;height:36px}.role-t small{display:none}
  ul.rq{grid-template-columns:1fr}
}
/* 動き（A99 §4-5）：状態の変化にだけ。動きを減らす設定では止める */
section.sec,.role-panel,.hnb{animation:secIn .24s ease both}
@keyframes secIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none !important;transition:none !important} }

/* ===================================================================== U29 暗い配色（OS の設定に従う。ヘッダーの切り替えで明るい・暗いに固定できる） */
:root[data-theme="dark"]{
  color-scheme:dark;
  --sumi:#E3E8ED; --ao:#4FC3CE; --bg:#161C23; --bg2:#1C232B; --line:#34404B; --muted:#9BA7B3;
  --page:#0E1318; --card:#161C23; --line2:#26303A; --ao-bg:#133238; --shadow:0 1px 2px rgba(0,0,0,.35);
  --on-ao:#0B1216; --th:#1C232B; --th-t:#C8D1DA; --warn-t:#F2B862; --warn-bg:#35270F; --neg:#F28B80; --neg-bg:#3A1C1A; --muted2:#7F8B97; --line3:#3A4652;
  --hot:#F39A5E; --hot-bg:#3A2416; --ao-bg2:#12262A; --inv-bg:#E3E8ED; --inv-t:#0E1318;
}
:root[data-theme="dark"] body>header.site{background:var(--card)}
:root[data-theme="dark"] .brand img{filter:invert(1) hue-rotate(180deg) brightness(1.15)}
:root[data-theme="dark"] mark{background:#6B5A12;color:inherit}
:root[data-theme="dark"] .leaflet-container{background:#0E1318}
:root[data-theme="dark"] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.8) contrast(.9) saturate(.6)}
:root[data-theme="dark"] .leaflet-overlay-pane path[stroke="#FFFFFF"]{stroke:#0E1318}
:root[data-theme="dark"] .leaflet-overlay-pane path[stroke="#10151B"]{stroke:#E3E8ED}
:root[data-theme="dark"] .leaflet-control-zoom a,:root[data-theme="dark"] .leaflet-control-attribution{background:var(--card);color:var(--sumi)}
:root[data-theme="dark"] .leaflet-tooltip{background:var(--card);color:var(--sumi);border-color:var(--line2)}
:root[data-theme="dark"] svg.cht text,:root[data-theme="dark"] svg.hs text,:root[data-theme="dark"] svg text.ax{fill:var(--muted)}
:root[data-theme="dark"] svg.cht [stroke="#10151B"],:root[data-theme="dark"] svg.hs [stroke="#10151B"]{stroke:var(--sumi)}
:root[data-theme="dark"] svg.cht [stroke="#DCE1E5"],:root[data-theme="dark"] svg.cht [stroke="#D3D8DD"]{stroke:#2C3640}
:root[data-theme="dark"] svg.cht [fill="#10151B"]{fill:var(--sumi)}
:root[data-theme="dark"] img:not(.brand img){filter:brightness(.9)}
/* テーマの切り替え */
.hd-theme{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line2);background:var(--card);color:var(--sumi);cursor:pointer;padding:0;flex:none}
.hd-theme:hover{color:var(--ao);border-color:var(--ao)}
:root[data-theme="dark"] svg [fill="#DCE1E5"],:root[data-theme="dark"] .cl-s[style*="#DCE1E5"]{fill:#4A5561;background:#4A5561 !important;--c:#4A5561}
:root[data-theme="dark"] svg [fill="#A8B4BC"]{fill:#7D8B96}
:root[data-theme="dark"] svg [stroke="#D3D8DD"]{stroke:#2C3640}
:root[data-theme="dark"] svg [fill="#0A5C64"]{fill:#1B7F88}
/* 次に見る（U29） */
.nextbox{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:14px 14px 10px;box-shadow:var(--shadow);margin:22px 0 8px}
.nx-h{display:flex;align-items:center;gap:8px;margin:0 4px 8px;font-weight:700;font-size:.95rem;color:var(--sumi)}
.nx-h svg{color:var(--ao)}
.nextbox ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px 8px}
a.nx-a{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;text-decoration:none;color:var(--sumi);transition:background .15s}
a.nx-a:hover,a.nx-a:focus-visible{background:var(--ao-bg)}
a.nx-a:hover svg.rq-c{opacity:1;transform:none}
@media (max-width:760px){ .nextbox ul{grid-template-columns:1fr} svg.rq-c{opacity:.6;transform:none} }
@media print{ .nextbox{display:none} }
/* 節の見出しのアイコン（U29） */
h2.h-ic{padding-left:0}
h2.h-ic::before{display:none}
.h-ic-i{width:30px;height:30px;border-radius:9px;display:inline-grid;place-items:center;vertical-align:middle;margin:-3px 10px 0 0;background:var(--ao-bg);color:var(--ao)}
h2.h-ic .gl-q{margin-left:2px}
/* ナビのアイコン：幅の狭い画面のメニューでだけ出す（広い画面は文字だけ） */
.site-nav svg.nav-i{display:none;margin-right:10px;color:var(--ao)}
@media (max-width:1000px){ .site-nav svg.nav-i{display:inline-block} }
.site-foot .copy{margin-top:4px;font-size:.8rem;color:var(--muted)}
pre.lic-t{white-space:pre-wrap;font-size:.76rem;line-height:1.55;background:var(--bg2);border-radius:8px;padding:12px 14px;margin:10px 0 0;max-height:18em;overflow:auto}
section.lic dl.kv dd{overflow-wrap:anywhere}
/* 印刷は暗い配色でも明るい配色で */
@media print{
  :root[data-theme="dark"]{color-scheme:light;--sumi:#10151B;--ao:#0E7C86;--bg:#FFFFFF;--bg2:#F6F7F8;--line:#D8DCE0;--muted:#5B6570;--page:#FFFFFF;--card:#FFFFFF;--line2:#E4E8EC;--ao-bg:#E7F3F4;
    --on-ao:#FFFFFF;--th:#F6F8FA;--th-t:#333B44;--warn-t:#9A5B00;--warn-bg:#FFF4E5;--neg:#B42318;--neg-bg:#FDECEC;--muted2:#8a929c;--line3:#c5cbd2;--hot:#B84A0E;--hot-bg:#fdebe0;--ao-bg2:#F7FBFB;--inv-bg:#10151B;--inv-t:#FFFFFF}
  :root[data-theme="dark"] .brand img,:root[data-theme="dark"] .leaflet-tile-pane,:root[data-theme="dark"] img{filter:none}
}
/* U30 区分番号のページ：届出の状況 */
.rk-tchip{display:contents}
.bd.bd-t{background:var(--ao-bg);color:var(--ao);border-color:transparent}
.bd.bd-k{background:var(--warn-bg);color:var(--warn-t);border-color:transparent}
.bd.bd-k.hot{background:var(--hot-bg);color:var(--hot)}
section.rtd-sec{margin:4px 0 18px}
section.rtd-sec h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.rtd-nat{font-size:.85rem;font-weight:400;color:var(--muted)}
.rtd-nat b{font-family:var(--mono);color:var(--sumi);font-size:1rem}
table.rtd-tbl th,table.rtd-tbl td{white-space:nowrap}
td.rtd-c{min-width:6.5em}
.rtd-bar{display:inline-block;width:40px;height:6px;border-radius:3px;background:var(--line2);margin-right:8px;vertical-align:middle;overflow:hidden}
.rtd-bar i{display:block;height:100%;background:var(--ao)}
.rtd-kk li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.rtd-kk b.hot{color:var(--hot)}
details.rtd-kd{flex-basis:100%}
details.rtd-kd>summary{cursor:pointer;font-size:.82rem;color:var(--ao)}
details.rtd-kd p{font-size:.88rem;margin:4px 0 0}
.rl-alt{margin-left:12px;white-space:nowrap}
/* U30 スマホの下のバー */
.tabbar{display:none}
@media (max-width:760px){
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:900;background:var(--card);border-top:1px solid var(--line2);
    padding:4px 4px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -2px 10px rgba(16,21,27,.06)}
  .tbb-i{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 0;border:0;background:none;font:inherit;color:var(--muted);text-decoration:none;cursor:pointer;border-radius:10px}
  .tbb-i.on,.tbb-i:active{color:var(--ao)}
  .tbb-ic{position:relative;display:grid;place-items:center;height:26px}
  .tbb-t{font-size:.66rem;line-height:1.2}
  .tbb-n{position:absolute;top:-4px;right:-10px;min-width:17px;height:17px;border-radius:9px;background:var(--ao);color:var(--on-ao);font-size:.68rem;font-weight:700;display:grid;place-items:center;padding:0 4px}
  .tbb-n.bump{animation:tbBump .25s ease}
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .cmpbar{bottom:calc(58px + env(safe-area-inset-bottom))}
  .totop{bottom:calc(120px + env(safe-area-inset-bottom))}
  .lpill{bottom:calc(70px + env(safe-area-inset-bottom))}
}
@keyframes tbBump{0%{transform:scale(1)}50%{transform:scale(1.35)}100%{transform:scale(1)}}
@media print{ .tabbar{display:none !important} }
body:has(.sheet) .tabbar{display:none !important}
@media (max-width:760px){
  .tabbar .tbb-i{height:auto;min-height:50px;line-height:1;justify-content:center;gap:3px}
  .tabbar .tbb-ic{height:24px}
  .tabbar .tbb-t{font-size:.68rem;line-height:1.1;white-space:nowrap}
  #cmpbar.cmpbar{display:none}
}
/* U31 自院 */
.jiin-btn.on{background:var(--ao-bg);border-color:var(--ao);color:var(--ao)}
.jiin-btn svg{vertical-align:-3px}
.ji-bar{background:var(--ao-bg2);border:1px solid var(--line2);border-radius:10px;padding:8px 12px;font-size:.88rem;margin:0 0 12px}
.ji-bar a{margin-left:10px;white-space:nowrap}
.ji-bar.ji-none{color:var(--muted)}
.ji-y,.ji-n{font-size:.8rem;font-weight:700;border-radius:10px;padding:1px 8px}
.ji-y{background:var(--ao-bg);color:var(--ao)}
.ji-n{background:var(--warn-bg);color:var(--warn-t)}
td.rtd-c.me{outline:2px solid var(--ao);outline-offset:-3px;border-radius:6px;font-weight:700}
.bd.bd-jy{background:var(--ao);color:var(--on-ao);border-color:transparent}
.bd.bd-jn{background:var(--warn-bg);color:var(--warn-t);border-color:transparent}
.kj-ji{display:inline-grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;background:var(--ao);color:var(--on-ao);margin-right:6px}
.kj-ji svg{width:12px;height:12px;stroke-width:3}
.ji-bar .btn-sub2{margin-left:12px;padding:2px 10px;font-size:.8rem}
/* U32 幅の狭い画面の表：左の見出しの列を留め、右に続きがあるときは端に影（横に送れると分かるように） */
@media (max-width:760px){
  .scroll,.tw{background:
      linear-gradient(to right,var(--card) 30%,transparent) left center/24px 100% no-repeat local,
      linear-gradient(to left,var(--card) 30%,transparent) right center/24px 100% no-repeat local,
      radial-gradient(farthest-side at 0 50%,rgba(16,21,27,.16),transparent) left center/10px 100% no-repeat scroll,
      radial-gradient(farthest-side at 100% 50%,rgba(16,21,27,.16),transparent) right center/10px 100% no-repeat scroll}
  .scroll>table.tbl:not(.cmp) tr>:first-child,.tw>table.tbl:not(.cmp):not(.ar-t) tr>:first-child{position:sticky;left:0;z-index:1;background:var(--card);box-shadow:1px 0 0 var(--line2)}
  .scroll>table.tbl thead tr>:first-child,.tw>table.tbl thead tr>:first-child{background:var(--th)}
  .scroll>table.tbl td,.tw>table.tbl td{background-clip:padding-box}
}
.tbb-n[hidden]{display:none !important}

/* ===== U33 病院をさがす：結果の行の要点の札、CSV の列を選ぶ（A104） ===== */
.rk-keys{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.rkk{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;line-height:1.5;padding:0 7px;border-radius:999px;background:var(--bg2);color:var(--muted);border:1px solid var(--line2);white-space:nowrap;font-weight:500}
.rkk-n{background:transparent;font-variant-numeric:tabular-nums}
.rkk-ji{background:var(--ao-bg);color:var(--ao);border-color:transparent;font-weight:700}
.rkk .icn{width:13px;height:13px}
.csv-g{position:relative;display:inline-flex;align-items:center;gap:6px}
.csv-g .btn-sub2{display:inline-flex;align-items:center;gap:5px}
.csv-pick>summary{cursor:pointer;font-size:13px;color:var(--ao);list-style:none;padding:4px 6px;border-radius:6px}
.csv-pick>summary::-webkit-details-marker{display:none}
.csv-pick>summary::after{content:" ▾"}
.csv-pick[open]>summary{background:var(--bg2)}
.csv-cols{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:260px;padding:12px 14px;background:var(--card);border:1px solid var(--line2);border-radius:10px;box-shadow:0 8px 24px rgba(16,21,27,.14);display:grid;gap:6px;font-size:13.5px}
.csv-cols label{display:flex;align-items:center;gap:6px;cursor:pointer}
.csv-cols .fnote{margin:4px 0 0}
@media (max-width:640px){ .csv-cols{right:auto;left:0;width:min(260px,calc(100vw - 48px))} }
@media print{ .rk-keys,.csv-pick{display:none} }

/* ===== U35 病院のページの近くの病院（A106） ===== */
.near-ctl{display:flex;align-items:center;gap:10px;margin:0 0 12px;flex-wrap:wrap}
.near-l{font-size:13px;color:var(--muted);font-weight:600}
.near-r{display:inline-flex;border:1px solid var(--line2);border-radius:999px;overflow:hidden;background:var(--card)}
.near-r button{border:0;background:transparent;padding:6px 14px;font:inherit;font-size:13.5px;color:var(--ink,inherit);cursor:pointer;font-variant-numeric:tabular-nums}
.near-r button+button{border-left:1px solid var(--line2)}
.near-r button.on{background:var(--ao);color:var(--on-ao,#fff);font-weight:700}
.near-g{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
.near-mc{position:sticky;top:72px}
.near-map{height:460px;border-radius:10px;border:1px solid var(--line2)}
.near-list .count{margin:0 0 8px}
.near-sub{margin-left:12px;font-size:13px;color:var(--muted);font-weight:400}
.near-t td:first-child{min-width:12em}
.near-t td:nth-child(5){white-space:nowrap}
@media (max-width:900px){ .near-g{grid-template-columns:minmax(0,1fr)} .near-mc{position:static} .near-map{height:320px} }
@media print{ .near-mc,.near-ctl{display:none} }

/* ===== U36 訪問先の管理（A107） ===== */
.vs-btn{display:inline-flex;align-items:center;gap:6px}
.vs-btn.on{background:var(--ao-bg);border-color:transparent;color:var(--ao);font-weight:700}
.vs-btn-d{font-weight:400;font-size:12px;color:var(--muted);margin-left:2px}
.vs-bulk-add{display:inline-flex;align-items:center;gap:5px}
.my-vs{display:flex;align-items:center;gap:14px;padding:14px 18px;margin:0 0 16px;background:var(--card);border:1px solid var(--line2);border-radius:var(--r);text-decoration:none;color:inherit;box-shadow:var(--shadow)}
.my-vs>.icn:first-child{color:var(--ao);background:var(--ao-bg);border-radius:10px;padding:8px;width:40px;height:40px;flex:none}
.my-vs span{display:grid;gap:2px;flex:1}.my-vs small{color:var(--muted)}
.my-vs:hover{border-color:var(--ao)}
.vs-head .lead{max-width:48em}
.vs-sync{margin-top:-4px}
.vs-top{display:grid;gap:10px;margin:8px 0 14px}
.vs-pipe{display:flex;gap:4px;flex-wrap:wrap}
.vs-pipe button{position:relative;overflow:hidden;flex:1 1 0;min-width:96px;white-space:nowrap;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line2);border-top:3px solid var(--c);border-radius:8px;background:var(--card);font:inherit;font-size:13.5px;color:inherit;cursor:pointer;text-align:left}
.vs-pipe button b{font-size:18px;font-variant-numeric:tabular-nums}
.vs-pipe button::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:var(--w);background:var(--c);opacity:.45}
.vs-pipe button.on{background:color-mix(in srgb,var(--c) 12%,var(--card));border-color:var(--c)}
.vs-dues{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.vs-l{font-size:13px;color:var(--muted);font-weight:600}
.vs-dueb{display:inline-flex;gap:8px;align-items:center;padding:5px 12px;border:1px solid var(--line2);border-radius:999px;background:var(--card);font:inherit;font-size:13px;color:inherit;cursor:pointer}
.vs-dueb b{font-variant-numeric:tabular-nums}
.vs-dueb.warn b{color:var(--hot)}
.vs-dueb.on{background:var(--ao);color:var(--on-ao,#fff);border-color:var(--ao)}.vs-dueb.on b{color:inherit}
.vs-ctl{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.vs-tabs{display:inline-flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:var(--card)}
.vs-tabs button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:7px 14px;font:inherit;font-size:13.5px;color:inherit;cursor:pointer}
.vs-tabs button+button{border-left:1px solid var(--line2)}
.vs-tabs button.on{background:var(--ao);color:var(--on-ao,#fff);font-weight:700}
.vs-flt{flex:1;margin:0}
.vs-bulk[hidden]{display:none}
.vs-bulk{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 12px;margin:0 0 10px;background:var(--ao-bg);border-radius:10px;font-size:13.5px}
.vs-bulk .in{width:auto;padding:4px 8px}
.vs-t td{vertical-align:top}
.vs-t th:first-child,.vs-t .vs-cb{width:32px}
.vs-ed{white-space:nowrap}
.vs-nm{min-width:13em}
.vs-st{display:inline-block;white-space:nowrap;font-size:12px;font-weight:700;padding:1px 9px;border-radius:999px;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent)}
.vs-pr-c{font-weight:700;font-variant-numeric:tabular-nums}
.vs-due{white-space:nowrap;font-variant-numeric:tabular-nums}
.vs-due small{margin-left:5px;font-size:11px;font-weight:700}
.vs-due.over{color:var(--hot);font-weight:700}.vs-due.today{color:var(--ao);font-weight:700}
.vs-todo{max-width:16em}.vs-last{max-width:18em;font-size:13px}.vs-last small{color:var(--muted)}
.vs-csv{display:inline-flex;gap:8px;flex-wrap:wrap}
.vs-csv .btn-sub2{display:inline-flex;align-items:center;gap:5px}
.vs-empty{padding:22px;background:var(--card);border:1px dashed var(--line2);border-radius:var(--r)}
.vs-board{display:grid;grid-template-columns:repeat(6,minmax(180px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}
.vs-col{background:var(--bg2);border-radius:10px;padding:8px;border-top:3px solid var(--c);min-height:120px}
.vs-col h3{display:flex;justify-content:space-between;font-size:13.5px;margin:2px 4px 8px}
.vs-col h3 span{color:var(--muted);font-variant-numeric:tabular-nums}
.vs-card{background:var(--card);border:1px solid var(--line2);border-radius:8px;padding:8px 10px;margin:0 0 6px;font-size:13px}
.vs-card-n{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--ao);text-align:left;cursor:pointer;line-height:1.45}
.vs-card-m{display:flex;gap:8px;align-items:center;margin-top:4px}
.vs-card-mv{margin-left:auto;display:inline-flex;gap:2px}
.vs-mv{border:1px solid var(--line2);background:var(--card);border-radius:6px;width:24px;height:22px;line-height:1;cursor:pointer;color:inherit}
.vs-card p{margin:4px 0 0;color:var(--muted);font-size:12.5px}
.vs-map{height:560px;border-radius:10px;border:1px solid var(--line2)}
.vs-lg{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;margin:0 0 8px}
.vs-lg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.vs-dlg{width:min(36em,100%)}
.vs-sub{margin:-4px 0 14px;color:var(--muted);font-size:13px}
.vs-f{display:grid;grid-template-columns:7em 1fr;gap:10px;align-items:center;margin:0 0 12px}
.vs-seg{display:flex;flex-wrap:wrap;gap:4px}
.vs-seg button{border:1px solid var(--line2);background:var(--card);border-radius:999px;padding:4px 11px;font:inherit;font-size:13px;color:inherit;cursor:pointer}
.vs-seg button.on{background:var(--c,var(--ao));border-color:var(--c,var(--ao));color:#fff;font-weight:700}
.vs-pr button{min-width:40px}
.vs-next{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.vs-next .in{width:auto}
.vs-quick{display:inline-flex;gap:10px;font-size:13px}
.vs-memo{resize:vertical}
.vs-h3{font-size:15px;margin:20px 0 8px}
.vs-add{display:grid;gap:8px;padding:10px;background:var(--bg2);border-radius:10px}
.vs-add-r{display:flex;gap:8px}.vs-add-r .in{width:auto}
.vs-add .btn{justify-self:start}
.vs-log{list-style:none;padding:0;margin:12px 0 0}
.vs-log li{border-left:3px solid var(--ao);padding:4px 0 8px 12px;margin:0 0 8px}
.vs-log li.vs-lg-st{border-left-color:var(--line2);color:var(--muted);font-size:12.5px;padding-bottom:2px}
.vs-log li.vs-lg-st p{margin:0}
.vs-lg-h{display:flex;gap:8px;align-items:center;font-size:13px}
.vs-kind{font-size:11.5px;padding:0 7px;border-radius:999px;background:var(--bg2);color:var(--muted)}
.vs-x{margin-left:auto;border:0;background:none;color:var(--muted);cursor:pointer;font-size:15px}
.vs-log p{margin:2px 0 0;white-space:pre-wrap}
.vs-foot{margin-top:18px;font-size:12.5px;color:var(--muted);line-height:1.7}
.vs-rm{color:var(--hot)}
@media (max-width:640px){ .vs-f{grid-template-columns:1fr;gap:4px} .vs-pipe button{min-width:calc(50% - 2px)} .vs-map{height:420px} .vs-board{grid-template-columns:repeat(6,minmax(220px,1fr))} }
@media print{ .vs-ctl,.vs-bulk,.vs-csv,.vs-ed,.vs-cb,.vs-dues{display:none} }
/* U37 近くの診療所・介護事業所（A108） */
.near-k{display:inline-flex;gap:8px;flex-wrap:wrap;margin-left:8px}
.near-kc{display:inline-flex;align-items:center;gap:0;border:1px solid var(--line2);border-radius:999px;background:var(--card);padding-left:8px}
.near-kc input{margin:0}
.near-kb{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:5px 12px 5px 8px;font:inherit;font-size:13px;color:inherit;cursor:pointer;border-radius:999px}
.near-kb i{width:9px;height:9px;border-radius:50%;display:inline-block}
.near-kb b{font-variant-numeric:tabular-nums}
.near-kb.on{background:var(--ao-bg);color:var(--ao);font-weight:700}
.near-lh{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.near-lh .count{margin:0}
.near-lh .near-cls{width:auto;flex:0 0 auto;padding:4px 8px}
.near-sub2{font-size:12.5px;color:var(--muted);max-width:16em}
@media (max-width:640px){ .near-k{margin-left:0} }

/* ===== U38 地図の共通部品（x_mapkit.js。A109） ===== */
.mk-wrap{position:relative}
.mk-wrap .map{margin:6px 0 12px}
.map-wrap-w{max-width:none}
.mk-tools{position:absolute;top:16px;right:10px;z-index:500;display:flex;flex-direction:column;gap:6px}
.mk-btn{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line2);border-radius:8px;background:var(--card);color:var(--sumi,inherit);cursor:pointer;box-shadow:0 1px 4px rgba(16,21,27,.15)}
.mk-btn:hover,.mk-btn.on{color:var(--ao);border-color:var(--ao)}
.mk-btn.busy{opacity:.5}
.mk-panel{position:absolute;top:16px;right:54px;z-index:500;width:min(330px,calc(100% - 70px));max-height:calc(100% - 40px);overflow:auto;background:var(--card);border:1px solid var(--line2);border-radius:10px;padding:12px 14px;box-shadow:0 8px 24px rgba(16,21,27,.18);display:grid;gap:10px;font-size:13px}
.mk-panel[hidden]{display:none}
.mk-pr{display:grid;gap:5px}
.mk-pr>span{font-weight:700;color:var(--muted);font-size:12px}
.mk-pr .in{padding:5px 8px}
.mk-chk{display:flex;align-items:center;gap:6px;cursor:pointer}
.mk-seg{display:flex;flex-wrap:wrap;gap:4px}
.mk-seg button{border:1px solid var(--line2);background:var(--card);border-radius:999px;padding:4px 10px;font:inherit;font-size:12.5px;color:inherit;cursor:pointer}
.mk-seg button.on{background:var(--ao);border-color:var(--ao);color:var(--on-ao,#fff);font-weight:700}
.mk-lgw{position:absolute;left:10px;bottom:30px;z-index:500;max-width:min(260px,calc(100% - 20px));max-height:55%;overflow:auto;background:color-mix(in srgb,var(--card) 92%,transparent);border:1px solid var(--line2);border-radius:10px;padding:8px 10px;font-size:12.5px;box-shadow:0 1px 4px rgba(16,21,27,.12)}
.mk-lh{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:0;background:none;padding:0;margin:0 0 4px;font:inherit;font-weight:700;color:inherit;cursor:pointer;text-align:left}
.mk-lt{color:var(--muted);font-weight:400}
.mk-lg-min .mk-lg>:not(.mk-lh){display:none}
.mk-lg-min .mk-lh{margin:0}
.mk-lg{display:grid;gap:2px}
.mk-li{display:flex;align-items:center;gap:6px;border:0;background:none;padding:2px 2px;font:inherit;font-size:12.5px;color:inherit;cursor:pointer;text-align:left;border-radius:4px}
.mk-li:hover{background:var(--bg2)}
.mk-li i{width:11px;height:11px;border-radius:50%;flex:none;border:1px solid rgba(255,255,255,.8)}
.mk-li b{margin-left:auto;padding-left:10px;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.mk-li.off{opacity:.4;text-decoration:line-through}
.mk-lm{margin-top:5px;padding-top:5px;border-top:1px solid var(--line2);color:var(--muted);line-height:1.5}
.mk-lstar{color:#D9822B;margin-right:3px}
.mk-full{position:fixed;inset:0;z-index:2000;background:var(--page);padding:10px}
.mk-full .map{height:calc(100vh - 20px) !important;max-height:none;margin:0}
body.mk-lock{overflow:hidden}
.mk-num span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.35);font-variant-numeric:tabular-nums}
.mk-star span{display:grid;place-items:center;width:28px;height:28px;font-size:24px;line-height:1;color:#D9822B;text-shadow:0 0 3px #fff,0 0 3px #fff,0 1px 4px rgba(0,0,0,.4)}
.mk-rl span{display:inline-block;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.9);color:#0E7C86;font-size:11px;font-weight:700;border:1px solid rgba(14,124,134,.4);white-space:nowrap}
.mk-rl.on span{background:#0E7C86;color:#fff}
.mk-pop .leaflet-popup-content{margin:12px 14px;min-width:220px}
.mk-card{display:grid;gap:5px;font-size:13px;line-height:1.5}
.mk-ct{font-size:14.5px;font-weight:700}
.mk-cs{color:var(--muted);font-size:12px}
.mk-cm{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12.5px}
.mk-cb{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.mk-a{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line2);border-radius:999px;padding:2px 9px;font:inherit;font-size:12px;background:var(--card);color:var(--ao);text-decoration:none;cursor:pointer;white-space:nowrap}
.mk-a:hover{border-color:var(--ao)}
.mk-a .ext{font-size:10px;margin-left:1px}
.mk-main{background:var(--ao);color:#fff !important;border-color:var(--ao)}
.mk-cmp{color:inherit;gap:4px}
.mk-cmp input{margin:0}
.rad-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 6px;font-size:13.5px}
.rad-l{display:inline-flex;align-items:center;gap:5px;font-weight:700}
.rad-c{color:#B85F12;font-weight:700}
.rad-h{color:var(--muted);font-size:12.5px;flex:1 1 20em}
.near-no{color:var(--muted);font-size:12px;width:2em}
/* 暗い配色：背景の地図だけを反転（写真・災害の重ね・人口メッシュはそのまま） */
:root[data-theme="dark"] .mk .leaflet-tile-pane{filter:none}
:root[data-theme="dark"] .mk .leaflet-tile-pane .mk-base:not(.mk-photo){filter:invert(1) hue-rotate(180deg) brightness(.8) contrast(.9) saturate(.6)}
:root[data-theme="dark"] .mk-rl span{background:rgba(14,19,24,.9)}
:root[data-theme="dark"] .mk-pop .leaflet-popup-content-wrapper,:root[data-theme="dark"] .mk-pop .leaflet-popup-tip{background:var(--card);color:var(--sumi)}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .mk .leaflet-tile-pane{filter:none} :root:not([data-theme="light"]) .mk .leaflet-tile-pane .mk-base:not(.mk-photo){filter:invert(1) hue-rotate(180deg) brightness(.8) contrast(.9) saturate(.6)} }
@media (max-width:640px){ .mk-lgw{bottom:auto;top:10px;left:50px;max-width:calc(100% - 110px);max-height:45%;font-size:12px} .mk .leaflet-control-attribution{font-size:.62rem;max-height:3.2em;overflow:hidden} .mk-panel{right:52px;width:calc(100% - 64px)} }
@media print{ .mk-tools,.mk-panel{display:none} }
.xls{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;font-size:13px}
.xls .xl{color:var(--ao)}
.mk-rt span{background:#D9822B;width:24px;height:24px;font-size:12px}
/* U39 回る順（訪問先の管理のルート。A110） */
.vr{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:16px;align-items:start}
.vr-side{display:grid;gap:12px;min-width:0}
.vr>*{min-width:0}
.vr-sec{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:12px 14px;display:grid;gap:8px}
.vr-sec h3{margin:0;font-size:14.5px}
.vr-start{margin:0;font-weight:700}
.vr-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.vr-row .in{width:auto;flex:1 1 8em;min-width:0;max-width:100%}
.vr-sec>*{min-width:0}
.vr-chk{display:flex;align-items:center;gap:6px;cursor:pointer}
.vr-q{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}
.vr-picks{max-height:260px;overflow:auto;display:grid;gap:2px;border:1px solid var(--line2);border-radius:8px;padding:6px 8px}
.vr-picks label{display:flex;align-items:center;gap:6px;font-size:13.5px;cursor:pointer;padding:2px 0}
.vr-picks label span{flex:1}
.vr-picks small{color:var(--muted);font-variant-numeric:tabular-nums}
.vr-sec .btn{display:inline-flex;align-items:center;gap:6px;justify-self:start}
.vr-ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.vr-ol li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line2);font-size:13.5px}
.vr-ol li>b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#D9822B;color:#fff;font-size:11.5px;flex:none}
.vr-n{flex:1;display:grid;min-width:0;overflow-wrap:anywhere}.vr-n small{color:var(--muted);font-size:12px}
.vr-d{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}
.vr-mv{display:inline-flex;gap:2px}
.vr-s{color:var(--muted)}
.vr-tot{margin:4px 0 0;font-weight:700;font-size:15px}
.vr-g{display:grid;gap:6px}.vr-g .btn{justify-self:stretch;text-align:center}
.vr-map{position:sticky;top:72px}
.vs-rmap{height:min(76vh,680px)}
@media (max-width:900px){ .vr{grid-template-columns:minmax(0,1fr)} .vr-map{position:static;order:-1} .vs-rmap{height:380px} }
@media print{ .vr{grid-template-columns:1fr} .vr-map,.vr-sec:not(.vr-res),.vr-g,.vr-mv,.vr-res .vr-row,.vr-res>button{display:none} }
/* U40 二次医療圏のページの病院の地図 */
.amap-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:16px;align-items:start}
.amap-m{height:min(64vh,560px);min-height:360px}
.amap-s{display:grid;gap:8px;font-size:13.5px}
.amap-n{margin:0;font-size:14px}.amap-n b{font-size:22px;margin-right:2px}
.amap-h{margin:6px 0 0;font-weight:700;font-size:13px;color:var(--muted)}
.amap-l{margin:0;padding-left:1.6em;display:grid;gap:3px}
.amap-l li{display:flex;gap:8px}.amap-l li a{flex:1;min-width:0}.amap-l li span{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.amap-s .btn-sub2{justify-self:start}
@media (max-width:900px){ .amap-g{grid-template-columns:minmax(0,1fr)} .amap-m{height:380px} }
/* U41 患者の流れの地図 */
.fm{margin:10px 0 14px}
.fm-seg{margin:0 0 8px;flex-wrap:wrap}
.fm-map{height:min(60vh,480px);min-height:340px;margin:0 0 6px}
.fm-v span{display:inline-block;white-space:nowrap;background:rgba(255,255,255,.92);border:1px solid;border-radius:999px;padding:0 6px;font-size:11px;color:#1d2833;transform:translateX(0)}
.fm-v b{font-variant-numeric:tabular-nums}
:root[data-theme="dark"] .fm-v span{background:rgba(14,19,24,.9);color:#E3E8ED}
/* U42 届出の名前：名前は告示へ、病院の一覧は横の小さなボタン */
.tdkn{display:inline;}
.tdkn-h{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:0 6px;border:1px solid transparent;border-radius:999px;font-size:12px;line-height:1.7;color:var(--muted);background:var(--bg2);text-decoration:none;white-space:nowrap;vertical-align:1px;cursor:pointer;font-family:inherit}
.tdkn-h:hover,.tdkn-h:focus-visible{background:var(--ao-bg)}
.tdkn-h:hover{color:var(--ao)}
.tdkn-h .icn{width:13px;height:13px}
button.tdkn-h[aria-expanded="true"]{background:var(--ao-bg);color:var(--ao);border-color:transparent}
/* U43 節の頭の説明：要約1文＋末尾にたたむ */
.sec-sum{margin:0 0 12px;color:var(--muted);font-size:14px;max-width:none}
details.sec-how{margin:14px 0 0;border-top:1px dashed var(--line2);padding-top:8px;font-size:13.5px;color:var(--muted)}
details.sec-how>summary{cursor:pointer;color:var(--ao);font-size:13px;width:max-content}
details.sec-how p{max-width:none;margin:6px 0}
@media print{ details.sec-how{display:none} }
/* 節の中の素の選択・入力（class なし）も .in と同じ見た目に */
.sec select:not([class]),.sec input[type=search]:not([class]){padding:6px 10px;border:1px solid var(--line2);border-radius:8px;background:var(--card);color:inherit;font:inherit;font-size:13.5px;max-width:100%;min-height:34px}
.sec input[type=search]:not([class]){min-width:14em}
/* U44 病院を選ぶ欄 */
.hpk{border:0;border-radius:14px;padding:18px 20px 20px;width:min(560px,calc(100vw - 24px));max-height:min(80vh,680px);overflow:auto;background:var(--card);color:inherit;box-shadow:0 20px 60px rgba(16,21,27,.3)}
.hpk::backdrop{background:rgba(16,21,27,.35)}
.hpk-lead{margin:0 0 12px;color:var(--muted);font-size:13.5px}
.hpk-in{width:100%;font-size:16px;padding:10px 12px}
.hpk-q{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 0}
.hpk-qh{font-size:12px;color:var(--muted);font-weight:700;margin-right:2px}
.hpk-l{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:2px}
.hpk-l li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 10px;border-radius:8px;cursor:pointer}
.hpk-l li b{grid-column:1}.hpk-l li span:not(.hpk-go){grid-column:1;font-size:12.5px;color:var(--muted)}
.hpk-go{grid-column:2;grid-row:1/3;align-self:center;font-size:12.5px;color:var(--ao);white-space:nowrap}
.hpk-l li.on,.hpk-l li:hover{background:var(--ao-bg)}
.hpk-l li.muted{cursor:default;background:none}
.hpk-j{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:13.5px;cursor:pointer}
/* U45 マイページ：大きさ 小・中・大、大きいほどグラフ・地図 */
.mc.mc-l{grid-column:1/-1}
@media (max-width:640px){ .mc.mc-l{grid-column:auto !important} }
.mc-map{height:320px;min-height:260px;margin:4px 0 8px}
.mc.mc-l .mc-map{height:380px}
.mc-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:640px){ .mc-2{grid-template-columns:1fr} }
.mc .mono.hot{color:var(--hot);font-weight:700}
.mc .cht{max-height:230px}
.my-lives{display:flex;flex-wrap:wrap;gap:6px}
.mc-tp a span{white-space:normal}
.mc-x.mc-sz{width:auto;min-width:26px;padding:0 7px;font-size:12px;font-weight:700;border:1px solid var(--line2);border-radius:6px}
/* 4象限の散布図（U46） */
.cht.qd .qd-hot{fill:var(--ao);fill-opacity:.06}
.cht.qd .qd-th{stroke:var(--sumi);stroke-width:1.2;stroke-dasharray:6 4}
.cht.qd .qd-q{font-size:12px;font-weight:700;fill:var(--muted)}
.cht.qd .qd-ref{fill:none;stroke:var(--sumi);stroke-width:2}
.cht.qd .qd-lb{font-size:11px;fill:var(--muted)}
.qd-w{margin:8px 0 12px}
.qd-leg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted);margin:4px 0}
.qd-leg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
tr.row-me td{background:color-mix(in srgb,var(--ao) 10%,transparent);font-weight:700}
/* 訪問先：連絡先・カレンダー・活動の集計・取り込み（U47） */
.vs-ct{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:6px;align-items:center}
.vs-ct .vs-cl{grid-column:1/-1;display:flex;gap:14px;font-size:13.5px}
.vs-ct .vs-cl:empty{display:none}
.vc-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0}
.vc-nav h3{margin:0;min-width:7.5em;text-align:center;font-size:1.05rem}
.vc-h,.vc-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.vc-h span{font-size:12px;color:var(--muted);text-align:center;padding:2px 0}
.vc-d{min-height:92px;background:var(--card);border:1px solid var(--line2);border-radius:8px;padding:4px 5px;display:flex;flex-direction:column;gap:3px;min-width:0}
.vc-d.vc-pad{background:transparent;border-color:transparent}
.vc-d.today{outline:2px solid var(--ao);outline-offset:-2px}
.vc-n{display:flex;justify-content:space-between;font-size:12.5px}
.vc-d.sun .vc-n b{color:#C0392B}.vc-d.sat .vc-n b{color:#2B7BB9}
.vc-wd{display:none;color:var(--muted)}
.vc-it{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 9%,transparent);color:inherit;font:inherit;font-size:12px;line-height:1.3;padding:2px 4px;border-radius:3px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vc-it.plan{background:color-mix(in srgb,var(--c) 20%,transparent);font-weight:700}
.vc-it small{font-weight:400;color:var(--muted);margin-right:4px}
.vc-more summary{font-size:12px;color:var(--muted);cursor:pointer}
@media (max-width:640px){
  .vc-h{display:none}
  .vc-g{grid-template-columns:1fr}
  .vc-d.vc-pad,.vc-d.empty{display:none}
  .vc-d{min-height:0}
  .vc-wd{display:inline}
  .vc-it{white-space:normal}
}
.vst-ks{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:6px 0 12px}
.vst-k{background:var(--card);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.vst-k span{font-size:12.5px;color:var(--muted)}.vst-k b{font-size:1.5rem}.vst-k small{font-size:12px;color:var(--muted)}
.vst-s{background:var(--card);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;margin:0 0 10px;min-width:0}
.vst-s h3{margin:0 0 6px;font-size:.98rem}
.vst-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.vst-l{list-style:none;margin:0;padding:0;font-size:13.5px}.vst-l li{padding:3px 0;border-bottom:1px dotted var(--line2)}
.vi-res{margin-top:10px}.vi-sum{margin:0 0 10px;padding-left:1.2em;font-size:14px}.vi-sum li{margin:3px 0}
#vi-dlg textarea{width:100%;margin-top:8px;font-family:ui-monospace,monospace;font-size:12.5px}
.vs-tabs{max-width:100%;overflow-x:auto}.vs-tabs button{white-space:nowrap;flex:none}
.vst-l .linkish{white-space:normal;text-align:left;overflow-wrap:anywhere}.vst-l li{overflow-wrap:anywhere}
/* 圏内のまとめ（U48） */
.rad-sum{background:var(--card);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;margin:0 0 10px}
.rs-ks{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.rs-k{display:flex;flex-direction:column}.rs-k span{font-size:12.5px;color:var(--muted)}.rs-k b{font-size:1.25rem}
.rs-band,.rs-near{margin:6px 0 0;font-size:13.5px}
/* 届出の候補（U49） */
.cand-d{margin:6px 0 12px;background:var(--card);border:1px solid var(--line2);border-radius:10px;padding:8px 12px}
.cand-d>summary{cursor:pointer;font-weight:700;color:var(--ao)}
.cand{margin-top:8px}
.cand-lv{display:inline-block;min-width:2em;text-align:center;border-radius:6px;font-size:12px;font-weight:700;padding:1px 6px}
.cand-lv.hi{background:#0E7C86;color:#fff}.cand-lv.mid{background:color-mix(in srgb,#0E7C86 25%,transparent)}.cand-lv.lo{background:var(--line2)}
.cand-t td{vertical-align:top}
/* 補助金の締切カレンダー（U50） */
.hj-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0}.hj-bar p{margin:0}
.vc-it.hj-it{--c:var(--ao);text-decoration:none;font-weight:700}.vc-it.hj-it.past{opacity:.55;font-weight:400}
.qd-s .cht.qd{width:100%;height:auto;display:block;max-width:960px}
.vst-st{list-style:none;margin:0;padding:0}
.vst-st li{display:grid;grid-template-columns:7.2em minmax(0,1fr) 3.4em 4.6em;gap:8px;align-items:center;padding:4px 0;font-size:13.5px}
.vst-st .vs-st{justify-self:start}
.vst-bar{height:10px;background:var(--line2);border-radius:5px;overflow:hidden}.vst-bar i{display:block;height:100%;background:var(--c);border-radius:5px}
.vst-st b{text-align:right}.vst-st small{text-align:right;color:var(--muted)}
@media (max-width:640px){ .qd-w td.nw .muted{display:block} .qd-w td.nw{white-space:normal} }
.cmpbar button.cmp-x{background:transparent;color:var(--inv-t);border:0;font-size:1.2rem;line-height:1;padding:4px 8px;cursor:pointer;opacity:.85}.cmpbar button.cmp-x:hover{opacity:1}

/* A113：字の下限と押し場所（3-1・3-2）。札は 12px 以上、届出名のとなりの「病院」と区分番号の札は当たり判定を広げる */
.rkk,.kb,span.kb,a.kb,.unit,small.fresh-t{font-size:max(.75rem,12px)}
.tdkn-h,a.kb,.kb-l,.mc-x{position:relative}
.tdkn-h::before,a.kb::before,.kb-l::before,.mc-x::before{content:"";position:absolute;inset:-6px -4px}
.crumb a{text-decoration:underline;text-decoration-color:var(--line3);text-underline-offset:3px}
.crumb a:hover{text-decoration-color:currentColor}
/* 訪問先の状態の札：文字を濃くして対比 4.5 以上に（2-3） */
.vs-st{color:color-mix(in srgb,var(--c) 62%,#000);background:color-mix(in srgb,var(--c) 14%,transparent)}
:root[data-theme="dark"] .vs-st{color:color-mix(in srgb,var(--c) 70%,#fff)}
/* 病院をさがす：狭い画面では条件の下に件数と一覧への近道（4-1・導線 A） */
.flt-cnt{display:none}
@media (max-width:999px){ .flt-cnt{position:sticky;top:0;z-index:21;display:flex;order:0;gap:10px;align-items:center;justify-content:space-between;margin:8px 0 0;padding:7px 10px;background:var(--ao);color:var(--on-ao);border-radius:8px;font-size:.9rem;box-shadow:var(--shadow)} .flt-cnt b{font-size:1.05rem} .flt-cnt a{color:inherit;text-decoration:underline} .srch{display:flex;flex-direction:column} .srch>.flt-cnt{order:2} .srch>.srch-side{order:1} .srch>.srch-main{order:3} }
/* タブの帯：横に続きがあることの印（3-5） */
nav.ptabs.more-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
.sr-only{position:absolute;left:0;top:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
h2.h3{font-size:1rem;margin:0 0 8px;padding:0;border:0}
/* 賃金と求人（/roudou） */
.rd-rank{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:14px 18px;margin:8px 0 16px}
.rd-rank h2{font-size:1.05rem;margin:0 0 8px}
.rd-bars{max-height:420px;overflow:auto;padding-right:4px}
.rd-bars .hb-row.me .hb-name{font-weight:700;color:var(--ao)}
.vs-hint{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 0;padding:8px 12px;background:var(--ao-bg);border-radius:8px;font-size:.88rem}
@media (max-width:640px){ .vs-csv{display:flex;flex-wrap:wrap;gap:6px} .vs-csv .btn-sub2{padding:6px 10px;font-size:.84rem} }
/* 経過措置の一覧（/keika） */
.kk-list{display:grid;gap:10px;margin:8px 0}
.kk{background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:12px 16px}
.kk.kk-me{border-left:4px solid var(--ao)}
.kk-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.kk-h h2.h3{margin:0;flex:1 1 16em}
.kk-d{flex:none;font-size:12.5px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--bg2);color:var(--muted)}
.kk-d.hot{background:var(--warn-bg);color:var(--warn-t)}.kk-d.past{text-decoration:line-through}
.kk-jiin{font-size:12px;font-weight:700;color:var(--on-ao);background:var(--ao);border-radius:999px;padding:1px 8px}
.kk-m{margin:6px 0 0;display:flex;gap:4px 12px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}
.kk-s{margin:6px 0 0;font-size:.92rem}
.kk-t{margin:6px 0 0;font-size:.85rem}
h2.h3::before{display:none}
@media (max-width:640px){ .kk-s{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer} .kk-s.open{display:block} }
.ph-more{position:relative}
.ph-more>summary{list-style:none;cursor:pointer}.ph-more>summary::-webkit-details-marker{display:none}
.ph-more-b{position:absolute;right:0;top:calc(100% + 6px);z-index:30;display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--card);border:1px solid var(--line2);border-radius:10px;box-shadow:var(--shadow);min-width:12em}
.dense-bar{margin:4px 0 0;text-align:right;font-size:.84rem}
.scroll.dense .tbl td,.scroll.dense .tbl th{padding-top:4px;padding-bottom:4px}
.scroll.dense .rk-keys{flex-wrap:nowrap;overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);margin-top:2px}
.scroll.dense .rkk{padding:0 5px}
/* 病院の KPI（/kpi。U54） */
.kp-top{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin:6px 0 12px}
.kp-pick{position:relative;flex:1 1 18em;max-width:28em}.kp-pick .in{width:100%}
.kp-pick .area-cand{position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--card);border:1px solid var(--line2);border-radius:8px;box-shadow:var(--shadow);margin:4px 0 0;max-height:320px;overflow:auto}
.kp-pick .area-cand:empty{display:none}
.kp-head{display:flex;gap:8px 16px;align-items:baseline;flex-wrap:wrap;margin:4px 0 8px}.kp-head h2{margin:0}.kp-head p{margin:0}.kp-head .btn-sub2{margin-left:auto}
.kp-chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.kp-chips .chip{cursor:pointer;border:1px solid var(--line2);background:var(--card);border-radius:999px;padding:4px 12px;font:inherit;font-size:.86rem;color:var(--sumi)}
.kp-chips .chip small{color:var(--muted)}
.kp-chips .chip.on{background:var(--ao);color:var(--on-ao);border-color:var(--ao)}.kp-chips .chip.on small{color:inherit;opacity:.85}
.kp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:0 0 14px}
.kp-c{background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:10px 12px;cursor:pointer;min-width:0}
.kp-c:hover,.kp-c:focus-visible{border-color:var(--ao);outline:none}
.kp-c.on{box-shadow:0 0 0 2px var(--ao) inset}
.kp-c.miss{border-left:4px solid #C0392B}.kp-c.hit{border-left:4px solid #2E8B57}
.kp-t{margin:0;font-size:.82rem;color:var(--muted);font-weight:700}
.kp-v{margin:2px 0;font-size:1.5rem;font-weight:700;font-family:var(--mono)}.kp-v small{font-size:.8rem;margin-left:3px;font-family:inherit;color:var(--muted)}
.kp-s,.kp-n,.kp-g{margin:0;font-size:.8rem}.kp-s .up{color:#2E7D4F}.kp-s .dn{color:#B42318}
.kp-n{color:var(--muted)}.kp-c.miss .kp-g{color:#B42318;font-weight:700}.kp-c.hit .kp-g{color:#2E7D4F;font-weight:700}
.kp-main{background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:12px 16px;margin:0 0 12px}
.kp-main h3{margin:0 0 6px}.kp-mh{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.kp-cmp{margin-top:8px}.kp-cmp>summary{cursor:pointer;font-weight:700;color:var(--ao)}
.kp-cmp-on{display:flex;gap:6px;flex-wrap:wrap}.kp-cmp-on .chip{border-left:4px solid var(--c)}
.kp-cand{list-style:none;margin:6px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px 16px;font-size:.88rem}
.kp-tg{margin:0 0 12px}.kp-tg>summary{cursor:pointer;font-weight:700;color:var(--ao)}
.kp-tg-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px;margin:8px 0}
.kp-tg-g label{display:flex;flex-direction:column;gap:2px;font-size:.84rem}
.kp-in{background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:10px 14px;margin:12px 0}.kp-in>summary{cursor:pointer;font-weight:700}
.kp-in textarea{width:100%;font-family:ui-monospace,monospace;font-size:12.5px}
td.kp-miss{color:#B42318;font-weight:700}
@media print{ .kp-top,.kp-cmp,.kp-tg,.kp-in,.kp-head .btn-sub2{display:none !important} .kp-cards{grid-template-columns:repeat(4,1fr)} body:has(.kp-cards) main{page:kpland} }
@page kpland{size:A4 landscape}
.kp-cand .linkish{white-space:normal;text-align:left;overflow-wrap:anywhere}.kp-cand li{min-width:0}
.kp-mh select.in{width:auto}
/* マイページ：図を選ぶ・大きさ（U55） */
.mc{position:relative}
.mc-szs{display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden}
.mc-szs .mc-sz{border:0;border-radius:0;min-width:1.9em;padding:2px 6px;font-size:.78rem}
.mc-szs .mc-sz+.mc-sz{border-left:1px solid var(--line2)}
.mc-szs .mc-sz.on{background:var(--ao);color:var(--on-ao);font-weight:700}
.mc-vp{position:relative;display:inline-block}
.mc-vp>summary{list-style:none;cursor:pointer;display:inline-grid;place-items:center}.mc-vp>summary::-webkit-details-marker{display:none}
.mc-vp-b{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:15em;background:var(--card);border:1px solid var(--line2);border-radius:10px;box-shadow:var(--shadow);padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:.86rem}
.mc-vp-b label{display:flex;gap:6px;align-items:center;cursor:pointer}
.mc-rs{position:absolute;right:2px;bottom:2px;width:18px;height:18px;cursor:ew-resize;touch-action:none;opacity:.45;background:linear-gradient(135deg,transparent 45%,var(--muted) 45%,var(--muted) 52%,transparent 52%,transparent 65%,var(--muted) 65%,var(--muted) 72%,transparent 72%)}
.mc:hover .mc-rs{opacity:.9}
@media (max-width:640px){ .mc-rs{display:none} }
.mc-ghost{position:absolute;z-index:60;border:2px dashed var(--ao);border-radius:var(--r);background:color-mix(in srgb,var(--ao) 8%,transparent);pointer-events:none}
.mc-ghost::after{content:attr(data-z);position:absolute;right:8px;bottom:6px;font-weight:700;color:var(--ao)}
@media print{ .mc-rs,.mc-vp,.mc-szs{display:none !important} }
.mc.mc-s .mc-mv{display:none}
.mc.mc-s .mc-h{flex-wrap:wrap}.mc.mc-s .mc-t{flex:1 1 8em}
.mc-szs .mc-sz{height:22px;line-height:1}
.mc-szs{height:24px;align-self:center}
/* 1日の予定（U56） */
.vr-plan>summary{list-style:none;cursor:pointer}.vr-plan>summary::-webkit-details-marker{display:none}.vr-plan>summary h3{display:inline}
.vr-pg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin:6px 0}
.vr-pg label{display:flex;flex-direction:column;gap:2px;font-size:.84rem;min-width:0}.vr-pg label.vr-chk{flex-direction:row;align-items:center;gap:6px}
.vr-pg .in{width:100%;min-width:0}
.vr-who{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.vr-who button{border:1px solid var(--line2);border-left:4px solid var(--c);background:var(--card);border-radius:8px;padding:4px 10px;font:inherit;font-size:.86rem;cursor:pointer}
.vr-who button.on{background:var(--ao-bg);font-weight:700}
.vr-tl{margin:10px 0}.vr-tl h4{margin:0 0 6px;font-size:.95rem}
.vr-tl ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--line2)}
.vr-tl li{display:grid;grid-template-columns:7.4em minmax(0,1fr);gap:8px;padding:3px 0 3px 10px;position:relative;font-size:.88rem}
.vr-tl li::before{content:"";position:absolute;left:-5px;top:9px;width:8px;height:8px;border-radius:50%;background:var(--line2)}
.vr-tl li.vr-tl-visit::before{background:var(--ao)}
.vr-tl li.vr-tl-lunch::before{background:#D9822B}
.vr-tl li.late b{color:#B42318}
.vr-tl-t{font-family:var(--mono);font-size:.82rem;color:var(--muted)}
@media print{ .vr-plan{display:none} }
/* 病棟をさがす（U57） */
.bt-pick{flex-wrap:wrap;gap:8px}
.bt-pick .bt-fee{min-width:16em;max-width:100%}
.bt-fees{list-style:none;padding:0;margin:8px 0;columns:2 22em;column-gap:24px}
.bt-fees li{break-inside:avoid;padding:3px 0}
.bt-facts .bt-sub{display:block;font-family:inherit;font-weight:400;font-size:.72rem;color:var(--muted)}
.bt-tools{align-items:center;gap:10px;flex-wrap:wrap}
.bt-tools .seg{margin:0}
.bt-tbl .bt-n{font-size:.76rem;color:var(--muted)}
.bt-tbl tr.bt-me td, .tbl tr.bt-me td{background:var(--ao-bg)}
.bt-pb{display:block;position:relative;height:4px;margin-top:4px;border-radius:2px;background:linear-gradient(90deg,var(--line2) 0 25%,var(--line) 25% 75%,var(--line2) 75%);min-width:56px}
.bt-pb i{position:absolute;top:-2px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--ao)}
.bt-links{display:flex;gap:16px;flex-wrap:wrap}
.kp-byoto{margin:4px 0 10px;font-size:.88rem}
.kp-byoto a{display:inline-flex;align-items:center;gap:4px}
.bt-facts>div{flex:1 1 0;min-width:0}
@media (max-width:640px){.bt-facts{gap:6px}.bt-facts>div{padding:6px 8px}.bt-facts dt{font-size:.68rem}}
dl.kfacts.bt-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:640px}
/* 地図：自社リスト・手で色付け・印刷（U58） */
.mk-mark{flex-basis:100%;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;padding-top:6px;border-top:1px solid var(--line)}
.mk-mk-l{font-size:.76rem;color:var(--muted)}
.mk-sw{width:18px;height:18px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line2);cursor:pointer;padding:0}
.mk-sw.on{box-shadow:0 0 0 2px var(--sumi)}
.mk-own .mk-own-b{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mk-own-m{font-size:.78rem;color:var(--muted)}
.mk-own-n{flex-basis:100%;margin:4px 0 0;font-size:.74rem;color:var(--muted)}
.mk-own-miss{flex-basis:100%;font-size:.76rem}.mk-own-miss p{margin:4px 0;max-height:6em;overflow:auto}
.mk-undo{margin-left:4px}
@media print{
  body.mk-print *{visibility:hidden}
  body.mk-print .mk-printing,body.mk-print .mk-printing *{visibility:visible}
  body.mk-print .mk-printing{position:fixed;left:0;top:0;width:100%;height:100%;margin:0}
  body.mk-print .mk-printing .mk{height:100% !important}
  body.mk-print .mk-printing .mk-tools,body.mk-print .mk-printing .mk-panel{display:none !important}
}
/* 機能評価係数IIを並べる（U59） */
.cf-lazy{margin:12px 0}
.cf-lazy>summary{cursor:pointer;color:var(--ao);font-weight:600}
.cf-tbl td.cf-top{font-weight:800;color:var(--ao)}
.cf-tbl .cf-g{font-size:.8rem;white-space:nowrap}
.cf-tbl .qc{min-width:150px}
.cf-foot{margin:8px 0}
.cf-tbl td:nth-child(2){min-width:15em}
/* 補助金：地方・語・並び順（U60） */
.hj-kw{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 10px}
.hj-kw-l{font-size:.78rem;color:var(--muted);margin-right:2px}
.hj-kw .chip[disabled]{opacity:.45;cursor:default}
.hj-kuni{display:flex;align-items:center;gap:6px;font-size:.84rem}
.hj-tools{display:inline-flex;gap:8px;align-items:center;margin-left:auto;flex-wrap:wrap}
.hj-tools .in{width:auto;min-width:0}
@media (max-width:640px){.hj-f{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hj-f .in{width:100%;min-width:0}.hj-f input[type=search],.hj-f .hj-kuni{grid-column:1/-1}}
.hj-kuni[hidden]{display:none}
.qd-types{font-size:.84rem;color:var(--muted);margin:4px 0 8px}
.bt-facts dt,.bt-facts dd{white-space:normal;overflow-wrap:anywhere}
dl.kfacts.bt-facts>div{min-width:0}@media (max-width:640px){dl.kfacts.bt-facts dd{font-size:1.1rem}}
.care-tools{align-items:center;gap:10px}.care-tools .seg{margin:0}
.tbl td.care-h{min-width:14em}
.bt-fees .linkish{white-space:normal;text-align:left;overflow-wrap:anywhere}.bt-fees .note{white-space:nowrap;display:inline-block}
.mc-nodata{font-size:.8rem;color:var(--muted);margin:6px 0;padding:6px 10px;border:1px dashed var(--line2);border-radius:6px}
/* ============ 機能のサイドメニュー（U64） ============ */
:root{--sw:216px}
body.side-min{--sw:60px}
.side{position:fixed;left:0;top:var(--sd-top,62px);bottom:0;width:var(--sw);z-index:25;background:var(--card);border-right:1px solid var(--line2);display:flex;flex-direction:column;transition:width .15s ease}
.sd-head{display:none;align-items:center;justify-content:space-between;padding:12px 14px 6px}
.sd-ht{font-weight:800;font-size:.9rem}
.sd-x{border:0;background:none;color:var(--sumi);cursor:pointer;padding:6px;border-radius:6px}
.sd-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 8px 8px;scrollbar-width:thin}
.sd-g+.sd-g{margin-top:8px}
.sd-gh{margin:6px 10px 4px;font-size:.7rem;font-weight:700;letter-spacing:.06em;color:var(--muted2,var(--muted));white-space:nowrap}
.sd-a,.sd-acct{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--sumi);text-decoration:none;font-size:.9rem;font-weight:600;white-space:nowrap;line-height:1.3}
.sd-a:hover,.sd-acct:hover{background:var(--page);color:var(--ao)}
.sd-a.on{background:var(--ao-bg);color:var(--ao)}
.sd-a.on::before{content:"";position:absolute;left:0;width:3px;height:22px;border-radius:0 3px 3px 0;background:var(--ao)}
.sd-a .sd-i,.sd-acct .sd-i{flex:0 0 auto;color:var(--ao)}
.sd-t{overflow:hidden;text-overflow:ellipsis}
body:not(.has-rule) .sd-need-rule{display:none}
.sd-foot{border-top:1px solid var(--line2);padding:8px;display:flex;flex-direction:column;gap:2px}
.sd-acct{display:none}
.sd-tg{display:flex;align-items:center;gap:10px;padding:7px 10px;border:0;border-radius:8px;background:none;color:var(--muted);font:inherit;font-size:.84rem;cursor:pointer;white-space:nowrap}
.sd-tg:hover{background:var(--page);color:var(--ao)}
.sd-tg-i{display:inline-block;width:18px;text-align:center;font-size:1.05rem;transition:transform .15s}
body.side-min .sd-tg-i{transform:rotate(180deg)}
.sd-back{display:none}
@media (min-width:1001px){
  body.side-on{padding-left:var(--sw)}
  body.side-on>header.site{margin-left:calc(-1 * var(--sw));width:calc(100% + var(--sw))}
  body.side-on .cmpbar{left:var(--sw)}
  body.side-on .site-nav a:not(.acct){display:none}
  body.side-min .sd-gh{visibility:hidden;height:4px;margin:4px 0}
  body.side-min .sd-t{display:none}
  body.side-min .sd-a,body.side-min .sd-tg{justify-content:center;padding:9px 0}
}
@media (max-width:1000px){
  .side{top:0;width:min(280px,86vw);transform:translateX(-102%);transition:transform .2s ease;z-index:1500;box-shadow:0 12px 40px rgba(16,24,40,.25)}
  body.side-open .side{transform:none}
  body.side-open .sd-back{display:block;position:fixed;inset:0;z-index:1400;background:rgba(10,14,20,.35)}
  .sd-head{display:flex}
  .sd-acct{display:flex}
  .sd-tg{display:none}
  body.side-open{overflow:hidden}
}
@media print{ .side,.sd-back{display:none !important} body.side-on{padding-left:0 !important} body.side-on>header.site{margin-left:0;width:100%} }
.h1-sub{font-size:.55em;font-weight:600;color:var(--muted);margin-left:.6em}
.rq-f{display:inline-flex;align-items:center;gap:3px;align-self:flex-start;margin-bottom:3px;padding:1px 8px 1px 6px;border-radius:999px;background:var(--ao-bg);color:var(--ao);font-size:.7rem;font-weight:700;line-height:1.6;letter-spacing:.02em}
@media (max-width:1000px){ .side{z-index:3000} body.side-open .sd-back{z-index:2900} }
/* 働く人の目で見る・求人をさがす（U65） */
.jb-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
dl.kfacts.jb-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
dl.kfacts.jb-facts>div{min-width:0}
dl.kfacts.jb-facts dd{font-size:1.15rem;white-space:normal;overflow-wrap:anywhere}
@media (max-width:640px){ dl.kfacts.jb-facts{grid-template-columns:1fr} }
.jb-tdk{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:6px 0 10px}
.jb-tdk li{font-size:.82rem;padding:3px 10px;border:1px solid var(--line2);border-radius:999px;background:var(--page)}
.jb-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:6px 0 10px}
.jb-a{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid var(--line2);border-radius:10px;background:var(--card);text-decoration:none;color:var(--sumi)}
.jb-a:hover{border-color:var(--ao)}
.jb-a b{color:var(--ao);font-size:.92rem}
.jb-a small{color:var(--muted);font-size:.76rem}
.jb-prb{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;padding:10px;border:1px dashed var(--line2);border-radius:12px}
.jb-prh{grid-column:1/-1;margin:0;font-weight:700;font-size:.88rem;display:flex;align-items:center;gap:8px}
.jb-disc{grid-column:1/-1;margin:0;font-size:.76rem;color:var(--muted)}
.jb-tag{display:inline-block;padding:0 7px;border-radius:4px;background:#8A6D00;color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.05em}
.jb-facts .bt-sub{display:block;font-family:inherit;font-weight:400;font-size:.72rem;color:var(--muted);margin-top:2px}
#app a.jb-a::after{content:none !important}
.jb-a b::after{content:" ↗";font-size:.75em;opacity:.7}
.jb-nt .jb-nt-s{font-size:.76rem;color:var(--muted)}.jb-nt .rkk{margin-left:6px}
/* 役割が6つ（U66）：狭い画面は2列で名前だけ */
@media (max-width:640px){ .roles{grid-template-columns:1fr 1fr;gap:6px} .role{padding:8px 10px;gap:8px} .role-i{width:30px;height:30px} .role-t b{font-size:.84rem;line-height:1.3} }
/* 診療圏分析（U67） */
.sr-pick{align-items:center;gap:10px;flex-wrap:wrap}
.sr-pick .kp-pick{position:relative;min-width:260px;flex:1 1 260px}
.sr-rl{font-size:.84rem;color:var(--muted)}
.sr-pick .seg{margin:0}
.sr-how{margin-top:-4px}
.sr-g{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
.sr-map{height:560px}
.sr-c{font-weight:700;margin:0 0 6px}
dl.kfacts.sr-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
dl.kfacts.sr-facts>div{min-width:0}
dl.kfacts.sr-facts dd{font-size:1.15rem}
.sr-facts .bt-sub{display:block;font-family:inherit;font-weight:400;font-size:.72rem;color:var(--muted)}
.sr-cl{margin:6px 0;padding-left:1.4em}
.sr-cl li{margin:4px 0}
.sr-cl .note{font-size:.76rem;color:var(--muted)}
@media (max-width:1000px){ .sr-g{grid-template-columns:1fr} .sr-map{height:380px} dl.kfacts.sr-facts{grid-template-columns:repeat(2,minmax(0,1fr))} }
.sr-g>*{min-width:0}
.sr-cl .note,.sr-cl b{white-space:normal;overflow-wrap:anywhere}
.ward-f{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0}
.ward-l{font-size:.78rem;color:var(--muted);margin-right:2px}
/* 過去の改定の疑義解釈（A16 v1.31） */
.qa-yh{font-size:.9rem;margin:16px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line2);color:var(--muted)}
.qa.qa-old{background:var(--page)}.qa.qa-old .qa-q,.qa.qa-old .qa-a{color:var(--muted2,var(--muted))}
.bd.bd-old{background:var(--page);color:var(--muted);border:1px dashed var(--line2)}
.qa-sub{font-size:.78rem;color:var(--muted)}
.qa-note{margin:0 0 6px}
.jb-st tr.jb-odd td{color:var(--muted2,var(--muted))}.jb-st .rkk{margin-left:6px}
.jb-st td:nth-child(2){min-width:11em}
/* 疑義解釈：新しい改定に同じ内容の問（A121） */
.qa-new { margin: .35rem 0 0; font-size: .82rem; color: var(--muted, #666); border-left: 3px solid var(--line, #ccc); padding-left: .5rem; }
/* ===== 病院の詳細版レポート（U71・A122） ===== */
.rp{counter-reset:rp}
.rp-page{background:var(--card);border:1px solid var(--line2);border-radius:6px;box-shadow:var(--shadow);width:min(210mm,100%);min-height:280mm;margin:0 auto 18px;padding:10mm 8mm 8mm;font-size:12px;line-height:1.6;color:var(--sumi);display:flex;flex-direction:column;gap:8px;box-sizing:border-box}
.rp-page>footer.rp-foot{margin-top:auto;display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line2);padding-top:5px;font-size:9.5px;color:var(--muted)}
.rp-h{display:flex;align-items:baseline;gap:10px;font-size:19px;margin:0;padding:0 0 5px;border-bottom:2px solid var(--sumi);border-left:0;line-height:1.35}
.rp-h::before{display:none}
.rp-no{font-size:11px;color:var(--muted);font-weight:400;font-family:var(--mono)}
.rp-lead{font-weight:700;color:var(--ao);font-size:14px;margin:2px 0 2px;line-height:1.5;word-break:auto-phrase;text-wrap:pretty}
.rp-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.rp-b{border:1px solid var(--line2);border-radius:6px;padding:7px 9px;font-size:11.2px;line-height:1.6}
.rp-b p{margin:0}
.rp-b ul{margin:0;padding-left:1.1em}
.rp-b li{margin:0 0 2px}
.rp-bh{font-weight:700;color:var(--muted);font-size:10.5px;margin-bottom:3px !important}
.rp-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rp-card{border:1px solid var(--line2);border-radius:6px;padding:8px 10px;min-width:0;break-inside:avoid}
.rp-ch{font-weight:700;font-size:12.5px;margin:0}
.rp-cs{font-size:10px;color:var(--muted);margin:0 0 6px}
.rp-card .cht{width:100%;height:auto}
.rp-h3{font-size:13px;margin:6px 0 0;border:0;padding:0}
.rp-h3::before{display:none}
.rp-src{font-size:9.5px;color:var(--muted);margin:0;overflow-wrap:anywhere}
.rp-fn{font-size:10px;color:var(--muted);margin:0}
.rp-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.rp-t{border:1px solid var(--line2);border-left:4px solid var(--line);border-radius:5px;padding:6px 8px;min-width:0}
.rp-t.on{border-left-color:var(--ao)}
.rp-t p{margin:0}
.rp-tl{font-size:10px;color:var(--muted);font-weight:700;line-height:1.35}
.rp-tv{font-size:18px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--sumi);line-height:1.3}
.rp-t.on .rp-tv{color:var(--ao)}
.rp-ts{font-size:9.5px;color:var(--muted);line-height:1.35}
.rp-bars,.rp-rank,.rp-div,.rp-s100{display:flex;flex-direction:column;gap:3px}
.rp-br,.rp-rr,.rp-dr,.rp-sr{display:grid;grid-template-columns:minmax(6em,38%) 1fr 5.2em;gap:6px;align-items:center;font-size:10.5px}
.rp-sr{grid-template-columns:4em 1fr}
.rp-bn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.rp-bt{position:relative;height:11px;background:var(--page);border-radius:2px}
.rp-bt i{position:absolute;left:0;top:0;bottom:0;background:#A8B4BC;border-radius:2px}
.rp-br.me .rp-bt i,.rp-rank .rp-bt i{background:var(--ao)}
.rp-br.me .rp-bn,.rp-br.me .rp-bv{color:var(--ao);font-weight:700}
.rp-bt b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--sumi);margin-left:-1px}
.rp-bv{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.rp-leg{font-size:9.5px;color:var(--muted);margin:2px 0 0;display:flex;align-items:center;gap:5px}
.rp-leg b{display:inline-block;width:2px;height:11px;background:var(--sumi)}
.rp-dt{position:relative;height:11px}
.rp-dt b{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--sumi)}
.rp-dt i{position:absolute;top:0;bottom:0;border-radius:2px}
.rp-dt i.pos,.rp-leg2 i.pos{background:#4E5B66}
.rp-dt i.neg,.rp-leg2 i.neg{background:#B9C3CB}
.rp-leg2,.rp-leg3{font-size:9.5px;color:var(--muted);margin:3px 0 0;display:flex;gap:12px;flex-wrap:wrap}
.rp-leg2 i,.rp-leg3 i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.rp-st{display:flex;height:18px;border-radius:3px;overflow:hidden;background:var(--page)}
.rp-st i{display:flex;align-items:center;justify-content:center;font-style:normal;font-size:10px;color:#fff;font-weight:700;white-space:nowrap;overflow:hidden}
.rp-st em{font-size:10px;color:var(--muted);padding-left:6px}
.rp-tw{overflow-x:auto}
.rp-tb{width:100%;border-collapse:collapse;font-size:11px}
.rp-tb th{font-size:10px;color:var(--muted);font-weight:700;text-align:left;border-bottom:1px solid var(--line);padding:4px 5px;vertical-align:bottom}
.rp-tb td{border-bottom:1px solid var(--line2);padding:4px 5px;vertical-align:top}
.rp-tb .n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.rp-tb tr.me td{color:var(--ao);font-weight:700;background:var(--ao-bg)}
.rp-tb.rp-small{font-size:10.2px}
.rp-tb td.rp-flag{color:var(--ao);font-weight:700}
.rp-tb td.rp-lo{background:color-mix(in srgb,var(--muted) 20%,transparent);font-weight:700}
.rp-tb td.rp-mid{background:var(--page)}
.rp-kt td:first-child{font-weight:700;white-space:nowrap}
.rp-ron{border:1px solid var(--line2);border-left:4px solid var(--ao);border-radius:5px;padding:6px 10px;font-size:11.5px;break-inside:avoid}
.rp-ron p{margin:1px 0}
.rp-rt{font-weight:700;font-size:13px}
.rp-ring{width:100%;height:auto}
.rp-ring .rp-rl{font-size:10px;fill:var(--sumi)}
.rp-ul{margin:0;padding-left:1.1em;font-size:10.5px}
.rp-cover{justify-content:center;gap:14px}
.rp-cover h1{font-size:28px;margin:0}
.rp-kind{font-size:22px;font-weight:700;color:var(--ao);margin:0}
.rp-sub{font-size:13px;color:var(--muted);margin:0}
.rp-date,.rp-url{font-size:11.5px;color:var(--muted);margin:0}
.rp-note{margin-top:28px;font-size:10.5px;color:var(--muted);border-top:1px solid var(--line2);padding-top:8px}
.rp-note p{margin:0 0 4px}
.sheet-bar .seg a,.sheet-bar .seg span{margin:0}
.sheet-bar .seg .on{background:var(--ao);color:var(--on-ao);border-color:var(--ao)}
@media (max-width:700px){ .rp-page{padding:14px 12px;min-height:0} .rp-3,.rp-2{grid-template-columns:1fr} .rp-tiles{grid-template-columns:repeat(2,minmax(0,1fr))} .rp-h{font-size:17px} }
@media print{
  body:has(.rp) header.site,body:has(.rp) .site-foot,body:has(.rp) #jiten,body:has(.rp) .crumbs,body:has(.rp) .no-print,body:has(.rp) .cmpbar,body:has(.rp) .side{display:none !important}
  body:has(.rp){background:#fff}
  body:has(.rp) main{width:auto;padding:0;margin:0}
  .rp-page{border:0;box-shadow:none;border-radius:0;width:auto;margin:0;padding:0;min-height:277mm;break-after:page;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .rp-page:last-child{break-after:auto}
}
.rp .cl{font-size:10px;gap:4px 12px}
.rp-tb td.rp-feec{min-width:11em}
.rp-list td:first-child{max-width:20em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 図の共通（U72）：主役だけ青緑、ほかは灰。縦軸を狭めた図の注記 */
.hb-row.oth .hb-bar{background:#A8B4BC}
.hb-row.me .hb-name,.hb-row.me .hb-val{font-weight:700;color:var(--ao)}
.cht .cht-note{font-size:10px;fill:var(--muted)}
.mc-note{font-size:.76rem;color:var(--muted);margin:2px 0 0}
.kz-2{margin:10px 0}.kz-2 h3{font-size:.9rem;margin:4px 0}
.cht.cht-idx{max-width:620px}.cht.cht-pair{max-width:560px}.rp .cht.cht-idx,.rp .cht.cht-pair{max-width:none}
.rk-fac .rp-rr{font-size:.84rem;grid-template-columns:minmax(9em,32%) 1fr 11em}.rk-fac .rp-bt{height:12px}@media (max-width:640px){.rk-fac .rp-rr{grid-template-columns:8em 1fr 8.5em;font-size:.76rem}}
/* ===== 病院レポート（詳細）の見た目の作り直し（U73）：章と頁の帯、要点の箱、図のあとに「言えること／問い」 ===== */
.rp-page{gap:10px}
.rp-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);letter-spacing:.04em;border-bottom:1px solid var(--line2);padding-bottom:4px}
.rp-chap{font-weight:700;color:var(--ao)}
.rp-pn{font-family:var(--mono)}
.rp-h{display:block;font-size:20px;border:0;padding:2px 0 0;margin:0}
.rp-key{display:flex;gap:10px;align-items:flex-start;background:var(--ao-bg);border-radius:8px;padding:8px 12px}
.rp-key p{margin:0;font-weight:700;font-size:13.5px;line-height:1.55;color:var(--sumi);word-break:auto-phrase;text-wrap:pretty}
.rp-kl{flex:none;font-size:10px;font-weight:700;color:var(--on-ao);background:var(--ao);border-radius:10px;padding:1px 8px;margin-top:2px}
.rp-card{border:0;background:var(--page);border-radius:8px;padding:9px 11px}
.rp-card .rp-bt,.rp-card .rp-st{background:var(--card)}
.rp-notes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}
.rp-nb{border-top:2px solid var(--sumi);padding-top:5px;font-size:11.2px}
.rp-nb.rp-ask{border-top-color:var(--ao)}
.rp-nh{font-weight:700;font-size:11px;margin:0 0 3px}
.rp-nb ul{margin:0;padding-left:1.1em}
.rp-nb li{margin:0 0 2px}
.rp-ask ul{list-style:none;padding-left:0}
.rp-ask li::before{content:"□ ";color:var(--ao);font-weight:700}
.rp-def{font-size:10px;color:var(--muted);margin:0;line-height:1.55}
.rp-def b{color:var(--sumi)}
.rp-tiles{gap:0;border-top:2px solid var(--sumi);border-bottom:1px solid var(--line2)}
.rp-t{border:0;border-radius:0;border-right:1px solid var(--line2);padding:7px 10px}
.rp-t:nth-child(4n){border-right:0}
.rp-t:nth-child(-n+4){border-bottom:1px solid var(--line2)}
.rp-t.on .rp-tv{color:var(--ao)}
.rp-qs{margin:0;padding-left:1.4em;font-size:11.5px}
.rp-qs li{margin:0 0 6px}
.rp-qs p{margin:0}
.rp-qq{font-weight:700;font-size:12.5px}
.rp-qt{font-size:10.5px;color:var(--ao);font-weight:700}
.rp-qk{font-size:10.5px;color:var(--muted)}
.rp-qs-l li{border-bottom:1px solid var(--line2);padding:4px 0 8px}
.rp-chk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.rp-ck{background:var(--page);border-radius:8px;padding:8px 10px;break-inside:avoid;border:1px solid transparent}
.rp-ck.out{border-color:var(--ao);background:var(--card)}
.rp-ck p{margin:0}
.rp-ckh{display:flex;justify-content:space-between;gap:6px;font-size:10.5px;font-weight:700;color:var(--muted)}
.rp-pill{font-size:9.5px;color:var(--on-ao);background:var(--ao);border-radius:8px;padding:0 6px;white-space:nowrap}
.rp-ckv{font-size:14px;font-weight:700;font-family:var(--mono);margin:3px 0 1px !important;line-height:1.35}
.rp-ckc{font-size:10px;color:var(--muted)}
.rp-ckq{font-size:10.5px;margin-top:4px !important;border-top:1px dashed var(--line);padding-top:3px}
.rp-cover{justify-content:flex-start;gap:16px;padding-top:0}
.rp-cband{display:flex;justify-content:space-between;background:var(--ao);color:var(--on-ao);margin:0 -8mm;padding:14px 8mm;font-weight:700;font-size:13px}
.rp-cover h1{font-size:30px;margin:40px 0 0}
.rp-toc{margin-top:22px}
.rp-toc ol{list-style:none;margin:0;padding:0}
.rp-toc li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;border-bottom:1px solid var(--line2);padding:8px 0}
.rp-tc{font-weight:700;font-size:14px}
.rp-tp{font-family:var(--mono);color:var(--muted)}
.rp-tt{grid-column:1/-1;font-size:11px;color:var(--muted)}
.rp-cover .rp-note{margin-top:auto;border-top:0}
@media (max-width:700px){ .rp-notes,.rp-chk{grid-template-columns:1fr} .rp-cband{margin:0 -12px;padding:12px} .rp-t{border-right:0;border-bottom:1px solid var(--line2)} }
@media print{ .rp-cband{margin:0} }
/* 比較の図（U74） */
.cf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
.cf-box{min-width:0}
.cf-box h3{font-size:.9rem;margin:0 0 4px}
.cf-box .hbars{margin:4px 0}
.cf-box .hb-row{grid-template-columns:minmax(6em,11em) 1fr 5.5em}
.cf-note{grid-column:1/-1}
.cf-grid .rp-br,.cf-grid .rp-dr,.cf-grid .rp-sr{font-size:.8rem}
.cf-grid .rp-sr{grid-template-columns:minmax(6em,11em) 1fr}
@media (max-width:700px){ .cf-grid{grid-template-columns:1fr} }
/* 1枚まとめを病院レポートの見た目にそろえる（U74） */
.sheet .sh-key{margin:0 0 10px}
.sheet .sh-key p{font-size:12px}
.sh-kpi{gap:0;border-top:2px solid var(--sumi);border-bottom:1px solid var(--line2)}
.sh-k{background:none;border-radius:0;border-right:1px solid var(--line2)}
.sh-k:last-child{border-right:0}
.sheet h2{border-bottom:0;border-top:1px solid var(--sumi);padding-top:4px}
.sh-top{border-bottom:0;background:var(--ao);color:var(--on-ao);margin:-14mm -13mm 12px;padding:8px 13mm}
.sh-top .sh-brand{color:#fff}
@media (max-width:700px){ .sh-top{margin:-16px -14px 12px;padding:8px 14px} .sh-k{border-right:0;border-bottom:1px solid var(--line2)} }
@media print{ .sh-top{margin:0 0 10px} }

/* ===== レポートを印刷で詰める・周辺の図に地図の背景（U77） ===== */
.rp-sec{display:flex;flex-direction:column;gap:10px;min-width:0}
.rp-list td,.rp-list th{padding:1.5px 4px;line-height:1.3}
.rp-ring .rp-rl{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.rp-ring .rp-rk{paint-order:stroke;stroke:#fff;stroke-width:3px;font-weight:700}
.rp-ring .rp-attr{font-size:9px;fill:#555;paint-order:stroke;stroke:#fff;stroke-width:3px}
.rp-ring{background:#f4f4f2;border-radius:6px}
@media print{
  body:has(.rp) main{page:rpflow}
  @page rpflow{size:A4 portrait;margin:9mm 9mm 11mm;@bottom-left{content:"メディル｜公開データに基づく資料";font-size:8pt;color:#777}@bottom-right{content:counter(page) " / " counter(pages);font-size:8pt;color:#777}}
  .rp-page{min-height:0 !important;break-after:auto !important;display:block}
  .rp-page.rp-cover{min-height:270mm !important;display:flex;break-after:page !important}
  .rp-page:not(.rp-cover)>footer.rp-foot,.rp-pn{display:none !important}
  .rp-page:not(.rp-cover)+.rp-page{border-top:1px solid #bbb !important;margin-top:5mm;padding-top:4mm}
  .rp-sec>.rp-top,.rp-sec>.rp-h,.rp-sec>.rp-key{break-after:avoid}
  .rp-card,.rp-2,.rp-3,.rp-notes,.rp-key,.rp-tiles,.rp-ring,.cht,.rp-bars,.rp-def,.rp-src,.rp-ron,tr{break-inside:avoid}
  .rp-tb thead{display:table-header-group}
  .rp-sec{display:block}
  .rp-sec>*+*{margin-top:8px}
  .rp-2,.rp-3{display:block;font-size:0}
  .rp-2>*,.rp-3>*{display:inline-block;vertical-align:top;font-size:12px;margin:0 8px 8px 0;box-sizing:border-box}
  .rp-2>*{width:calc(50% - 4px)}.rp-2>*:nth-child(2n){margin-right:0}
  .rp-3>*{width:calc(33.333% - 6px)}.rp-3>*:nth-child(3n){margin-right:0}
  .rp-card{break-inside:avoid}
  .rp-sec>.rp-card,.rp-2>div>.rp-card{display:inline-block;width:100%;box-sizing:border-box}
  .rp-2>div>.rp-card+.rp-card{margin-top:8px}
}
