/* ZipICE マニュアル共通スタイル */
:root {
  --fg: #1d1d1f; --muted: #6e6e73; --bg: #ffffff; --panel: #f5f5f7;
  --line: #d2d2d7; --accent: #0a66d8; --warn: #b25000; --code-bg: #f0f0f3;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --fg: #f5f5f7; --muted: #a1a1a6; --bg: #1c1c1e; --panel: #2c2c2e;
    --line: #3a3a3c; --accent: #4c9bff; --warn: #ff9f40; --code-bg: #2c2c2e;
  }
}
@media print { :root { --fg:#1d1d1f; --muted:#6e6e73; --bg:#fff; --panel:#f5f5f7; --line:#d2d2d7; --accent:#0a66d8; --warn:#b25000; --code-bg:#f0f0f3; } }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans", sans-serif;
  font-size: 15px; line-height: 1.75;
}
main { max-width: 860px; margin: 0 auto; padding: 32px 16px 80px; }
h1, h2, h3 { line-height: 1.35; }
h2 { font-size: 1.55em; margin: 2.6em 0 .6em; padding-bottom: .3em; border-bottom: 2px solid var(--accent); }
h3 { font-size: 1.15em; margin: 1.8em 0 .4em; }
p { margin: .6em 0; }
a { color: var(--accent); text-decoration: none; }
code, kbd, .mono { font-family: "SF Mono", Menlo, monospace; font-size: .92em; }
code { background: var(--code-bg); padding: .08em .35em; border-radius: 4px; white-space: nowrap; }
kbd { border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 5px; padding: .05em .4em; background: var(--panel); white-space: nowrap; }
figure { margin: 1.2em 0 1.6em; }
figure img { width: 100%; height: auto; border: 1px solid var(--line); border-radius: 10px; display: block; }
figure.small img { max-width: 520px; }
figcaption { color: var(--muted); font-size: .88em; margin-top: .4em; }
table { width: 100%; border-collapse: collapse; margin: .8em 0 1.2em; font-size: .94em; }
th, td { border-bottom: 1px solid var(--line); padding: .45em .6em; text-align: left; vertical-align: top; }
th { background: var(--panel); font-weight: 600; }
td:first-child { white-space: nowrap; }
.note, .tip, .warn { border-radius: 10px; padding: .8em 1em; margin: 1em 0; background: var(--panel); border-left: 4px solid var(--accent); }
.warn { border-left-color: var(--warn); }
.note b:first-child, .tip b:first-child, .warn b:first-child { display: block; margin-bottom: .2em; }
ol.steps { padding-left: 1.4em; } ol.steps li { margin: .35em 0; }
.cover { text-align: center; padding: 80px 0 40px; }
.cover img { width: 128px; height: 128px; }
.cover h1 { font-size: 2.4em; margin: .3em 0 .1em; }
.cover .sub { color: var(--muted); font-size: 1.1em; }
.cover .ver { color: var(--muted); margin-top: 2em; font-size: .92em; }
nav.toc { background: var(--panel); border-radius: 12px; padding: 1em 1.4em; }
nav.toc ol { margin: .3em 0; padding-left: 1.4em; columns: 2; column-gap: 2em; }
nav.toc li { break-inside: avoid; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) {
  nav.toc ol { columns: 1; }
  .grid2 { grid-template-columns: 1fr; }
  table { display: block; overflow-x: auto; }
  td:first-child { white-space: normal; }
}
@media print {
  body { font-size: 10.5pt; }
  main { max-width: none; padding: 0; }
  h2 { break-before: page; margin-top: 0; }
  .cover { break-after: page; padding-top: 180px; }
  nav.toc { break-after: page; }
  figure, table, .note, .tip, .warn, .keep { break-inside: avoid; }
  figure img { width: auto; max-width: 100%; max-height: 330px; margin: 0 auto; }
  figure.small img { max-height: 300px; }
  figcaption { text-align: center; }
  h2, h3 { break-after: avoid; }
  a { color: inherit; }
}
/* 言語ごとの書体 */
:lang(ja) body, body:lang(ja) { font-family: -apple-system, "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif; }
:lang(zh-Hans) body, body:lang(zh-Hans) { font-family: -apple-system, "PingFang SC", sans-serif; }
:lang(zh-Hant) body, body:lang(zh-Hant) { font-family: -apple-system, "PingFang TC", sans-serif; }
:lang(ko) body, body:lang(ko) { font-family: -apple-system, "Apple SD Gothic Neo", sans-serif; word-break: keep-all; }
/* 言語切り替え */
.langs { text-align: center; font-size: .85em; color: var(--muted); margin-top: 2.5em; }
.langs a { margin: 0 .35em; white-space: nowrap; }
@media print { .langs { display: none; } }
