/* ══════════════════════════════════════════════════════════════════
   歯科点数表サーチ（006） すごいツールズ 共通トンマナ（001〜013と同一の骨格）
   ══════════════════════════════════════════════════════════════════ */
:root{
  --ink:#111827; --ink2:#4B5563; --ink3:#6B7280; --ink4:#6E7781;
  --line:#E5E7EB; --line-soft:#EEF0F3;
  --bg:#F9FAFB; --surface:#FFFFFF; --surface-dim:#F5F5F7;
  --accent:#222222;
  --r-card:12px; --r-field:10px; --r-sm:6px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:84px;}
body{margin:0; background:var(--bg); color:var(--ink); font-family:'Inter','Noto Sans JP',sans-serif; font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased;}
a{color:var(--ink);}
::selection{background:#E5E5E5;}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:4px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}

/* ── ヘッダー ── */
.st-header{position:sticky; top:0; z-index:50; background:var(--surface); border-bottom:1px solid var(--line);}
.st-header-inner{max-width:1200px; margin:0 auto; padding:0 24px; height:64px; display:flex; align-items:center; justify-content:space-between; gap:24px;}
.st-header-logo{height:28px; width:auto; display:block;}
.st-brand{display:flex; align-items:center; gap:14px; min-width:0;}
.st-tool-name{font-size:15px; font-weight:700; letter-spacing:-.01em; color:var(--ink); margin:0; padding-left:14px; border-left:1px solid var(--line); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-decoration:none;}
.st-cta{flex-shrink:0; font-size:14px; font-weight:600; line-height:1.4; color:#fff; background:var(--accent); padding:8px 16px; border-radius:8px; transition:background .15s ease; text-decoration:none;}
.st-cta:hover{background:#000; color:#fff;}

/* ── レイアウト ── */
.wrap{max-width:960px; margin:0 auto; padding:16px 24px 64px;}
h1.ttl{font-size:26px; font-weight:800; letter-spacing:-.01em; line-height:1.35; margin:14px 0 6px;}
h1.ttl .code{font-family:'Inter','Noto Sans JP',sans-serif; color:var(--ink2); font-weight:700; margin-right:4px;}
.crumb{font-size:13px; color:var(--ink3); margin-top:14px;}
.crumb span{margin:0 4px; color:#B0B6BE;}
section{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); padding:22px 26px; margin-top:16px;}
section h2{font-size:17px; font-weight:800; letter-spacing:-.01em; margin:0 0 12px; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;}
section h2 .sub{font-size:12px; font-weight:500; color:var(--ink3);}
section h3{font-size:15px; font-weight:700; margin:16px 0 6px; color:var(--ink2);}
.meta{font-size:13px; color:var(--ink3); margin:4px 0 8px;}

/* ── 検索窓 ── */
.sb{position:relative; margin:8px 0 0;}
.sb input{width:100%; font:inherit; font-size:16px; padding:12px 14px; border:1px solid var(--line); border-radius:var(--r-field); background:var(--surface); color:var(--ink); -webkit-appearance:none; appearance:none;}
.sb input:focus{border-color:var(--ink3); outline:none; box-shadow:0 0 0 3px rgba(0,0,0,.06);}
.res{position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:40; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:0 12px 32px rgba(17,24,39,.12); max-height:min(70vh,560px); overflow:auto; padding:6px;}
.res .r{display:block; text-decoration:none; padding:8px 10px; border-radius:8px; line-height:1.45;}
.res .r:hover,.res .r.on{background:var(--surface-dim);}
.res .r .c{font-weight:700; color:var(--ink2); margin-right:6px;}
.res .r .n{font-weight:600;}
.res .r .m{display:block; font-size:13px; color:var(--ink3);}
.res .r .m b{color:var(--ink); font-weight:600;}
.res .r .m .p{margin-left:6px; color:var(--ink2);}
.res .hd{font-size:12px; color:var(--ink3); padding:8px 10px 2px; font-weight:600;}
.res .none{padding:10px; font-size:14px; color:var(--ink3);}
.res mark{background:#FEF3C7; color:inherit; padding:0 1px; border-radius:2px;}

/* ── 点数表 ── */
table.pt{width:100%; border-collapse:collapse; font-size:15px;}
table.pt th,table.pt td{border-top:1px solid var(--line-soft); padding:8px 6px; vertical-align:top; text-align:left;}
table.pt tr:first-child th,table.pt tr:first-child td{border-top:0;}
table.pt td{white-space:nowrap; text-align:right; width:7em; font-variant-numeric:tabular-nums; font-weight:600;}
table.pt th{font-weight:500;}
table.pt .lb{display:inline-block; min-width:1.6em; color:var(--ink2); font-weight:600;}
table.pt tr.d1 th{padding-left:1.8em;}
table.pt tr.d2 th{padding-left:3.6em;}
table.pt tr.d3 th{padding-left:5.4em;}
table.pt tr.d1 th,table.pt tr.d2 th,table.pt tr.d3 th{border-top-style:dashed;}

/* ── 注・通知・通則 ── */
ol.notes{list-style:none; margin:0; padding:0;}
ol.notes li{display:flex; gap:10px; padding:8px 0; border-top:1px solid var(--line-soft); font-size:15px;}
ol.notes li:first-child{border-top:0;}
ol.notes .nn{flex:0 0 3.2em; font-weight:700; color:var(--ink2);}
ol.notes .nt{flex:1; min-width:0; overflow-wrap:anywhere;}
.np{display:flex; gap:10px; padding:8px 0; border-top:1px solid var(--line-soft); font-size:15px; margin:0; overflow-wrap:anywhere;}
.np:first-of-type{border-top:0;}
.np .pl{flex:0 0 2.6em; font-weight:700; color:var(--ink2);}
.np .pt2{flex:1; min-width:0;}
p.np{display:block;}
.corr{display:inline-block; font-size:11px; font-weight:600; color:var(--ink3); border:1px solid var(--line); border-radius:4px; padding:0 6px; margin-left:6px; vertical-align:middle;}
details{margin:0;}
details summary{cursor:pointer; font-weight:600; font-size:14px; color:var(--ink2); padding:6px 0;}
details .tsub{margin-top:8px;}
.tsub h3{font-size:14px; font-weight:700; color:var(--ink2); margin:14px 0 4px;}

/* ── トップ（007 と同じ骨格: 中央にタイトル＋丸い検索窓） ── */
main.top{max-width:none; padding:0;}
.hero{background:none; border:0; border-radius:0; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:max(360px, calc(100vh - 260px)); min-height:max(360px, calc(100svh - 260px)); padding:48px 24px 64px;}
.hero-title{font-size:34px; font-weight:800; letter-spacing:-.02em; line-height:1.25; text-align:center; margin:0 0 32px;}
.hero-form{width:100%; max-width:560px;}
.hero .sb{margin:0;}
.hero .sb input{height:58px; border-radius:999px; padding:0 26px; font-weight:600; box-shadow:0 1px 3px rgba(17,24,39,0.05); transition:border-color .15s ease, box-shadow .15s ease;}
.hero .sb input::placeholder{color:var(--ink3); font-weight:500;}
.hero .sb input:hover{border-color:var(--ink3); box-shadow:0 4px 14px rgba(17,24,39,0.08);}
.hero .sb input:focus{border-color:var(--accent); box-shadow:0 4px 14px rgba(17,24,39,0.08);}
.hero .res{border-radius:20px; text-align:left;}
.hero-note{margin:18px 0 0; text-align:center; font-size:14px;}
.hero-note a{color:var(--ink3); text-decoration:none; border-bottom:1px solid var(--line);}
.hero-note a:hover{color:var(--ink); border-bottom-color:var(--ink3);}

/* ── 本文中の表 ── */
.tbw{overflow-x:auto; margin:8px 0;}
table.tb{border-collapse:collapse; font-size:13.5px; min-width:60%;}
table.tb td{border:1px solid var(--line); padding:5px 8px; vertical-align:top; white-space:pre-wrap;}
table.tb tr:first-child td{background:var(--surface-dim); font-weight:600;}

/* ── 略称一覧 ── */
table.ry{width:100%; border-collapse:collapse; font-size:14.5px;}
table.ry th{font-size:12px; color:var(--ink3); font-weight:600; text-align:left; padding:4px 6px; border-bottom:1px solid var(--line);}
table.ry td{padding:6px; border-top:1px solid var(--line-soft); vertical-align:top; overflow-wrap:anywhere;}
table.ry td.ab{font-weight:600; white-space:nowrap;}
table.ry td.cd{white-space:nowrap; font-size:13px;}
table.ry td.cd a{margin-right:6px;}

/* ── フッター ── */
.st-footer{border-top:1px solid var(--line); padding:36px 24px 32px; margin-top:40px; background:var(--surface);}
.st-footer-inner{max-width:1200px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;}
.st-footer img{height:24px; width:auto; display:block;}
.st-footer .cr{font-size:13px; color:var(--ink4);}

/* ── レスポンシブ上書き層 ── */
@media screen and (max-width:760px){
  .st-header-inner{padding:0 14px; height:56px; gap:10px;}
  .st-header-logo{height:22px;}
  .st-tool-name{font-size:13px; padding-left:10px;}
  .st-cta{font-size:12px; padding:7px 10px;}
  .wrap{padding:8px 12px 48px;}
  h1.ttl{font-size:21px;}
  .hero{min-height:max(320px, calc(100vh - 280px)); min-height:max(320px, calc(100svh - 280px)); padding:40px 20px 48px;}
  .hero-title{font-size:26px; margin-bottom:24px;}
  .hero .sb input{height:54px; padding:0 22px;}
  section{padding:16px 14px; border-radius:10px;}
  table.pt{font-size:14px;}
  table.pt td{width:5.5em;}
  ol.notes li,.np{font-size:14px;}
  ol.notes .nn{flex-basis:2.8em;}
  .res{max-height:60vh;}
  .st-footer{padding:22px 14px;}
}
@media print{
  .st-header,.sb,.st-cta,.st-footer{display:none !important;}
  body{background:#fff;}
  section{border:0; padding:0; margin-top:14px;}
  details{display:block;}
  details summary{display:none;}
  details > *{display:block;}
}
