:root { --fg: #1b1f24; --muted: #5b6470; --line: #d9dee4; --bg: #ffffff; --soft: #f4f6f8; --accent: #0b5cad; --warn-bg: #fff4d6; --warn-fg: #6b4e00; }
@media (prefers-color-scheme: dark) {
  :root { --fg: #e6e9ed; --muted: #9aa4b1; --line: #333a43; --bg: #14171b; --soft: #1d2127; --accent: #7db7f0; --warn-bg: #3d3210; --warn-fg: #f3dc97; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg); font: 16px/1.65 -apple-system, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Segoe UI", sans-serif; }
header, main, footer { max-width: 60rem; margin: 0 auto; padding: 1rem; }
header { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: baseline; border-bottom: 1px solid var(--line); }
header .brand { font-weight: 700; font-size: 1.15rem; color: var(--fg); text-decoration: none; }
nav { display: flex; flex-wrap: wrap; gap: .25rem 1rem; font-size: .92rem; }
a { color: var(--accent); }
h1 { font-size: 1.6rem; line-height: 1.3; margin: 1.2rem 0 .3rem; }
h2 { font-size: 1.2rem; margin: 1.8rem 0 .4rem; }
.en-title { color: var(--muted); font-size: 1rem; margin: 0 0 1rem; }
section[lang="en"] { margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.banner { background: var(--warn-bg); color: var(--warn-fg); padding: .6rem 1rem; border-radius: .4rem; margin: 1rem 0; font-size: .92rem; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: .93rem; margin: .6rem 0; }
th, td { text-align: left; padding: .45rem .6rem; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: var(--soft); font-weight: 600; white-space: nowrap; }
dl.facts { display: grid; grid-template-columns: minmax(8rem, max-content) 1fr; gap: .3rem 1rem; margin: .6rem 0; }
dl.facts dt { color: var(--muted); }
dl.facts dd { margin: 0; }
.label { display: inline-block; padding: .1rem .6rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--soft); font-weight: 600; }
.muted { color: var(--muted); }
form.appeal { display: grid; gap: .8rem; max-width: 36rem; }
form.appeal label { display: grid; gap: .2rem; font-size: .93rem; }
form.appeal input, form.appeal select, form.appeal textarea { font: inherit; padding: .45rem .5rem; border: 1px solid var(--line); border-radius: .3rem; background: var(--bg); color: var(--fg); width: 100%; }
form.appeal button { font: inherit; padding: .55rem 1rem; border: 0; border-radius: .3rem; background: var(--accent); color: var(--bg); justify-self: start; cursor: pointer; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
footer { border-top: 1px solid var(--line); margin-top: 3rem; color: var(--muted); font-size: .88rem; }
