:root{--bg:#fbfaf7;--fg:#1d1d1b;--muted:#66645e;--line:#e3e0d7;--card:#fff;--accent:#1f5f8b;--quote:#f3f1ea;
--st0:#5b6b7a;--st1:#a86a12;--st2:#1f7a4d;--st3:#0f6f86;--st4:#3b3b3b;--st5:#b3261e;--flag:#b85c00}
@media (prefers-color-scheme:dark){:root{--bg:#141413;--fg:#ecebe6;--muted:#a3a19a;--line:#2f2e2b;--card:#1c1c1a;
--accent:#7fb3d9;--quote:#232320;--st0:#9fb0c0;--st1:#e0a458;--st2:#6cc28f;--st3:#6cc4d8;--st4:#d0cfc9;--st5:#ef8a8a;--flag:#f0a060}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.8 -apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:880px;margin:0 auto;padding:0 16px}
header.site{border-bottom:1px solid var(--line);background:var(--card)}
header.site .wrap{display:flex;gap:12px;align-items:center;justify-content:space-between;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
.logo{font-weight:700;font-size:18px;color:var(--fg)}
nav a{margin-left:14px;font-size:14px;color:var(--muted)}
.preview{background:#fff4d6;color:#5a4300;border-bottom:1px solid #e8d49a;font-size:13px;padding:6px 0}
@media (prefers-color-scheme:dark){.preview{background:#3a3218;color:#f3e3b0;border-color:#5a4a20}}
h1{font-size:24px;line-height:1.45;margin:22px 0 8px}
h2{font-size:18px;margin:30px 0 10px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.crumb{font-size:13px;color:var(--muted);margin-top:14px}
.meta{color:var(--muted);font-size:13px}
.badge{display:inline-block;font-size:12px;font-weight:700;padding:1px 9px;border-radius:999px;border:1.5px solid currentColor;margin-right:6px;white-space:nowrap}
.st0{color:var(--st0)}.st1{color:var(--st1)}.st2{color:var(--st2)}.st3{color:var(--st3)}.st4{color:var(--st4)}.st5{color:var(--st5)}
.flag{color:var(--flag);border-style:dashed}
.box{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:14px 0}
.box.change{border-left:4px solid var(--accent)}
.box.conflict{border-left:4px solid var(--flag)}
blockquote{margin:6px 0;padding:8px 12px;background:var(--quote);border-radius:6px;font-size:14px;line-height:1.7}
blockquote .frag+.frag::before{content:" … ";color:var(--muted)}
.src{font-size:12px;color:var(--muted)}
.ok{color:var(--st2)}.ng{color:var(--st5)}
ol.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
ol.timeline li{position:relative;margin:0 0 16px;padding-left:16px}
ol.timeline li::before{content:"";position:absolute;left:-6px;top:10px;width:10px;height:10px;border-radius:50%;background:var(--line)}
ol.timeline li.chg::before{background:var(--accent)}
.when{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.ttl{font-weight:600}
.cases{list-style:none;padding:0;margin:0}
.cases li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:8px 0}
.cases .t{font-weight:600}
.tags a,.tags span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:2px 10px;margin:3px 4px 3px 0;font-size:13px;background:var(--card)}
.tags span{color:var(--muted)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
.note{font-size:12px;color:var(--muted)}
footer{border-top:1px solid var(--line);margin-top:48px;padding:20px 0 40px;font-size:12px;color:var(--muted)}
footer a{color:var(--muted);margin-right:12px}
