:root{
  --fg:#1a1d1f; --fg-muted:#5c656d; --bg:#fff; --border:#e3e6e8;
  --accent:#0b6ef6; --warn-bg:#fff6e5; --warn-border:#f0c36d;
  --max:44rem;
}
@media (prefers-color-scheme: dark){
  :root{ --fg:#e8eaec; --fg-muted:#a2abb3; --bg:#16181a; --border:#2c3033;
         --accent:#5aa2ff; --warn-bg:#3a3020; --warn-border:#7a6534; }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; padding:0 1.25rem 6rem; color:var(--fg); background:var(--bg);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  line-height:1.9; font-size:16px; word-break:normal; overflow-wrap:anywhere;
}
.wrap{max-width:var(--max); margin:0 auto}
header.site{padding:1.5rem 0; border-bottom:1px solid var(--border); margin-bottom:2rem}
header.site a{color:var(--fg-muted); text-decoration:none; font-size:.875rem}
h1{font-size:1.5rem; line-height:1.5; margin:2rem 0 .5rem}
h2{font-size:1.1875rem; margin:2.5rem 0 .75rem; padding-top:.5rem}
h3{font-size:1.0625rem; margin:1.75rem 0 .5rem}
p,li{font-size:1rem}
ol,ul{padding-left:1.5rem}
a{color:var(--accent)}
table{border-collapse:collapse; width:100%; margin:1rem 0; font-size:.9375rem}
th,td{border:1px solid var(--border); padding:.5rem .75rem; text-align:left}
th{background:color-mix(in srgb, var(--fg) 4%, transparent)}
.meta{color:var(--fg-muted); font-size:.875rem; margin:0 0 2rem;
      border:1px solid var(--border); border-radius:.5rem; padding:.875rem 1rem}
.meta dl{display:grid; grid-template-columns:auto 1fr; gap:.25rem .75rem; margin:0}
.meta dt{color:var(--fg-muted)}
.meta dd{margin:0}
.banner{background:var(--warn-bg); border:1px solid var(--warn-border);
        border-radius:.5rem; padding:.875rem 1rem; margin:0 0 1.5rem; font-size:.9375rem}
.banner strong{display:block; margin-bottom:.25rem}
.changes{border:1px solid var(--border); border-radius:.5rem; padding:1rem 1rem 1rem 2rem; margin:0 0 2rem}
.history{list-style:none; padding:0}
.history li{border-bottom:1px solid var(--border); padding:.875rem 0}
.history .v{font-weight:600}
.history .d{color:var(--fg-muted); font-size:.875rem}
.diff{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.875rem;
      white-space:pre-wrap; border:1px solid var(--border); border-radius:.5rem; padding:1rem}
.diff ins{background:#dcfce7; color:#14532d; text-decoration:none; display:block}
.diff del{background:#fee2e2; color:#7f1d1d; display:block}
@media (prefers-color-scheme: dark){
  .diff ins{background:#14361f; color:#a7f3c0}
  .diff del{background:#3d1c1c; color:#fca5a5}
}
footer.site{margin-top:4rem; padding-top:1.5rem; border-top:1px solid var(--border);
            color:var(--fg-muted); font-size:.8125rem}
/* トップページ（規約・ポリシーハブ） */
.hero{padding:1rem 0 .5rem}
.hero h1{margin-top:0}
.lead{color:var(--fg-muted); font-size:.9375rem; max-width:38rem}
.hub-group h2{font-size:.875rem; letter-spacing:.06em; color:var(--fg-muted);
              border-bottom:1px solid var(--border); padding-bottom:.5rem}
.docs{list-style:none; padding:0; margin:1rem 0 2.5rem; display:grid; gap:.75rem}
.docs li{display:flex; align-items:stretch; gap:.5rem}
.docs .card{flex:1; display:flex; flex-direction:column; gap:.125rem; text-decoration:none;
            border:1px solid var(--border); border-radius:.625rem; padding:.875rem 1rem;
            transition:border-color .15s}
.docs .card:hover{border-color:var(--accent)}
.docs .card .t{color:var(--fg); font-weight:600}
.docs .card .d{color:var(--fg-muted); font-size:.8125rem}
.docs .card.draft{border-style:dashed}
.docs .card.draft .t{color:var(--fg-muted)}
.docs .hist{align-self:center; flex-shrink:0; color:var(--fg-muted); font-size:.8125rem;
            text-decoration:none; padding:.375rem .625rem; border-radius:.375rem}
.docs .hist:hover{color:var(--accent); background:color-mix(in srgb, var(--accent) 8%, transparent)}
/* アプリのWebViewで開いたとき（?embed=app）はナビゲーションを消す */
body.embed header.site, body.embed footer.site{display:none}
body.embed{padding-top:1rem}
