:root {
  color-scheme: light;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  color: #152f40;
  background: #f2f5f7;
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 88px; }
body { margin: 0; font-size: 16px; line-height: 1.85; overflow-wrap: anywhere; }
a { color: #087078; text-underline-offset: 4px; }
a:focus-visible { outline: 3px solid #39aeb4; outline-offset: 4px; border-radius: 4px; }
h1, h2, h3, p { margin: 0; }
h1 { font-size: 30px; line-height: 1.55; letter-spacing: -.02em; }
h1 span { font-size: .68em; font-weight: 500; color: #536b79; letter-spacing: 0; }
h2 { font-size: 22px; line-height: 1.5; margin-bottom: 18px; }
h3 { font-size: 16px; line-height: 1.65; margin: 26px 0 10px; }
p + p { margin-top: 14px; }
.topbar { background: #132c3b; padding: env(safe-area-inset-top) max(18px, env(safe-area-inset-right)) 0 max(18px, env(safe-area-inset-left)); }
.topbar-inner { max-width: 800px; min-height: 68px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.back-link { min-height: 44px; display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-size: 15px; font-weight: 600; }
.back-link:hover { text-decoration: underline; }
.app-name { color: #bfd5df; font-size: 14px; white-space: nowrap; }
main { width: min(800px, 100%); margin: auto; padding: 36px max(18px, env(safe-area-inset-right)) max(36px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left)); }
.skip-link { position: absolute; top: -100px; left: 12px; z-index: 2; padding: 10px 16px; background: #fff; }
.skip-link:focus { top: 12px; }
.intro { margin-bottom: 24px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; color: #087078; font-size: 14px; font-weight: 700; }
.version { padding: 1px 9px; border: 1px solid #c4d7dc; border-radius: 20px; color: #536b79; font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; }
.lead { margin-top: 18px; max-width: 640px; color: #536b79; }
.contents { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 28px 0; }
.contents a { min-height: 48px; padding: 10px 12px; border: 1px solid #d3e0e6; border-radius: 9px; background: #fff; font-size: 14px; font-weight: 600; text-decoration: none; display: flex; align-items: center; }
.contents a:hover { border-color: #087f86; background: #edf7f7; }
.card { position: relative; margin-bottom: 20px; padding: 28px; border: 1px solid #dbe3e8; border-radius: 14px; background: #fff; }
.section-number { color: #087078; font-size: 12px; line-height: 1; font-weight: 700; letter-spacing: .1em; margin-bottom: 12px; }
.note { margin: 22px 0; padding: 18px; border-left: 3px solid #b58425; border-radius: 0 8px 8px 0; background: #fff7e5; color: #694b19; }
.note h3, .offline-note h3 { margin-top: 0; }
.note p, .offline-note p { font-size: 15px; }
.steps { margin: 24px 0 18px; padding: 0; list-style: none; counter-reset: step; }
.steps li { counter-increment: step; position: relative; padding: 0 0 22px 40px; }
.steps li::before { content: counter(step); position: absolute; left: 0; top: 1px; display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #e4f4f3; color: #086b70; font-size: 13px; font-weight: 700; }
.steps li:last-child { padding-bottom: 0; }
.steps strong, .steps span { display: block; }
.steps span { margin-top: 6px; color: #536b79; font-size: 15px; }
.small { color: #536b79; font-size: 14px; }
.offline-note { margin-top: 24px; padding: 18px; border-radius: 9px; background: #edf4f8; color: #325768; }
.document-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; margin-top: 14px; font-size: 15px; font-weight: 600; }
.page-footer { padding: 10px 0 0; color: #536b79; font-size: 14px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; }
.page-footer p span { display: block; margin-top: 2px; font-size: 12px; }
.return-link { display: inline-flex; align-items: center; gap: 18px; min-height: 46px; padding: 9px 16px; border: 1px solid #bbced6; border-radius: 9px; font-weight: 600; text-decoration: none; }
@media (max-width: 480px) {
  main { padding-top: 27px; }
  h1 { font-size: 27px; }
  h1 span { font-size: 17px; }
  h2 { font-size: 20px; }
  .card { padding: 22px 18px; border-radius: 12px; }
  .contents { gap: 7px; margin: 22px 0; }
  .contents a { padding: 10px; font-size: 13px; }
  .note, .offline-note { padding: 16px 14px; }
}
@media (max-width: 340px) {
  .contents { grid-template-columns: 1fr; }
  .app-name { font-size: 12px; }
}
@media print {
  body { background: #fff; color: #000; font-size: 11pt; }
  .topbar, .contents, .skip-link, .return-link { display: none; }
  main { padding: 0; width: 100%; }
  .card { border: 0; padding: 16px 0; }
  h2, h3 { break-after: avoid; }
  .note, .offline-note { break-inside: avoid; }
}
