/* Common document components; the shared theme below sets all page colors and layout. */
  * { box-sizing:border-box; }
  body { margin:0; background:var(--bg); color:var(--fg); font:17px/1.7 -apple-system,system-ui,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif; }
  main { max-width:860px; margin:0 auto; padding:20px 16px 48px; }
  h1 { font-size:24px; line-height:1.35; margin:0 0 6px; }
  h2 { font-size:20px; margin:32px 0 10px; padding-top:12px; border-top:1px solid var(--line); }
  h3 { font-size:18px; margin:22px 0 6px; }
  .sub { color:var(--muted); font-size:15px; margin:0 0 16px; }
  p, li { font-size:16px; }
  ul, ol { padding-left:22px; }
  a { color:var(--accent); }
  code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:15px; background:var(--code); padding:1px 5px; border-radius:4px; word-break:break-all; }
  pre { background:var(--code); border:1px solid var(--line); border-radius:8px; padding:10px 12px; overflow-x:auto; font-size:15px; line-height:1.5; }
  pre code { background:none; padding:0; word-break:normal; }
  .box { background:var(--card); border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:8px; padding:10px 14px; margin:14px 0; }
  .scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; margin:10px 0; border:1px solid var(--line); border-radius:8px; }
  table { border-collapse:collapse; min-width:560px; width:100%; font-size:15px; }
  th, td { text-align:left; vertical-align:top; padding:7px 10px; border-bottom:1px solid var(--line); }
  th { background:var(--card); white-space:nowrap; }
  tr:last-child td { border-bottom:none; }
  .ok { color:var(--ok); font-weight:600; }
  .warn { color:var(--warn); font-weight:600; }
  nav.toc { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:8px 14px; }
  nav.toc ol { margin:4px 0; }
  .tag { display:inline-block; white-space:nowrap; font-size:14px; font-weight:600; padding:1px 8px; border-radius:10px; border:1px solid var(--line); }
  .tag.ok { color:var(--ok); }
  .tag.part { color:var(--accent); }
  .tag.p1 { color:var(--warn); }
  .tag.p2, .tag.no { color:var(--muted); }
  .stats { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
  .stats div { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:8px 12px; min-width:120px; }
  .stats b { font-size:22px; display:block; }

/* Shared Osmanthe documentation theme */
:root { color-scheme:light; --bg:#f3f6f8; --surface:#fff; --fg:#1b1f24; --muted:#667085; --line:#e4e7ec; --card:#f8f9fb; --accent:#087f75; --code:#eff4f5; --ok:#067647; --warn:#9a6700; }
@media(prefers-color-scheme:dark) { :root { color-scheme:dark; --bg:#10191e; --surface:#172329; --fg:#e6e8eb; --muted:#a7b4bd; --line:#2a3941; --card:#1c2b32; --accent:#56d6bc; --code:#1c2b32; --ok:#47cd89; --warn:#e3b341; } }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { padding-left:248px; font:15px/1.8 -apple-system,system-ui,"PingFang SC","Microsoft YaHei",sans-serif; }
.doc-sidebar { position:fixed; inset:0 auto 0 0; width:248px; display:flex; flex-direction:column; padding:30px 22px; background:var(--surface); border-right:1px solid var(--line); overflow-y:auto; }
.doc-sidebar .brand { margin-bottom:40px; }
.doc-sidebar .nav-label { margin:0 12px 10px; font-size:11px; color:var(--muted); letter-spacing:2px; }
.doc-sidebar nav { display:grid; gap:6px; }
.doc-sidebar nav a { color:var(--muted); text-decoration:none; padding:10px 12px; border-radius:9px; font-size:13px; }
.doc-sidebar nav a:hover { background:var(--card); color:var(--fg); }
.doc-sidebar nav a[aria-current=page] { background:var(--code); color:var(--accent); box-shadow:inset 3px 0 var(--accent); font-weight:600; }
.doc-sidebar .back { margin-top:auto; padding:24px 12px 0; color:var(--accent); font-size:13px; text-decoration:none; }
main { max-width:1060px; margin:40px auto; padding:40px 48px 64px; background:var(--surface); border:1px solid var(--line); border-radius:18px; min-width:0; }
h1 { font-size:30px; line-height:1.4; letter-spacing:-.7px; max-width:28em; margin:0 0 16px; }
h2 { font-size:21px; margin:40px 0 16px; padding-top:24px; } h3 { font-size:17px; margin-top:28px; }
p,li { font-size:15px; } .sub { font-size:13px; line-height:1.8; margin-bottom:28px; }
a { text-underline-offset:3px; } p,li,.sub { overflow-wrap:anywhere; }
pre { padding:18px 20px; border-radius:12px; font-size:13px; } code { font-size:13px; }
.box, nav.toc { padding:18px 22px; border-radius:12px; background:var(--card); }
.scroll { border-radius:12px; } th,td { padding:12px 14px; font-size:13px; } th { color:var(--muted); } tbody tr:hover { background:var(--card); }
a.doc { background:var(--surface); border-radius:14px; padding:22px 24px; margin:14px 0; transition:border-color .15s,background .15s; } a.doc:hover { border-color:var(--accent); background:var(--card); } a.doc b { font-size:17px; } a.doc span { font-size:12px; } a.doc p { font-size:14px; }
:where(a,summary):focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
@media(max-width:1200px) { main { margin:28px 24px; padding:32px; } }
@media(max-width:760px) { body { padding-left:0; }.doc-sidebar { position:static; width:auto; padding:20px 16px; border-right:0; border-bottom:1px solid var(--line); }.doc-sidebar .brand { margin-bottom:20px; }.doc-sidebar .nav-label { display:none; }.doc-sidebar nav { display:flex; flex-wrap:wrap; gap:4px; }.doc-sidebar nav a { padding:8px 10px; }.doc-sidebar .back { padding:16px 10px 0; } main { margin:16px 12px; padding:24px 18px 40px; border-radius:14px; } h1 { font-size:24px; } h2 { font-size:19px; }.box,nav.toc { padding:14px; } a.doc { padding:18px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--fg); font-size:20px; font-weight:650; letter-spacing:-.6px; }.brand-flower { width:38px; height:38px; color:var(--accent); flex:none; }.brand small { display:block; color:var(--muted); font-size:10px; font-weight:400; letter-spacing:1px; margin-top:2px; }.brand:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }