:root{
  --bg:#eef1f4;--panel:#fff;--fg:#17202a;--muted:#5b6876;--line:#d5dbe2;
  --amber:#e8a200;--amber-ink:#4a3300;--amber-soft:#fff3d1;
  --ok:#1d7a4c;--ok-soft:#dff3e8;--fanuc:#a88900;--sie:#0a8a8a;
  --body:"IBM Plex Sans KR",system-ui,-apple-system,"Malgun Gothic",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;color-scheme:light}
@media (prefers-color-scheme:dark){:root{
  --bg:#12171d;--panel:#1b222b;--fg:#e6ebf0;--muted:#94a1ae;--line:#2c3642;
  --amber:#f2b632;--amber-ink:#1a1200;--amber-soft:#3a2d0a;--ok:#5fd09a;--ok-soft:#143326;--fanuc:#e3c03a;--sie:#3cc4c4;color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.6}
a{color:inherit}
.wrap{max-width:720px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-right)) 40px max(16px,env(safe-area-inset-left))}
header{position:sticky;top:0;z-index:5;background:var(--bg);padding:14px 0 12px;display:grid;gap:8px;border-bottom:1px solid var(--line)}
.brand{display:flex;justify-content:space-between;align-items:center;gap:8px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:20px;text-decoration:none}
.lamp{width:12px;height:12px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft)}
@media (prefers-reduced-motion:no-preference){.lamp{animation:blink 1.6s steps(2,end) infinite}}
@keyframes blink{50%{opacity:.35}}
.lang{font:600 13px var(--mono);border:1px solid var(--line);border-radius:6px;padding:4px 10px;text-decoration:none}
.tag{margin:0;font-size:13px;color:var(--muted)}
.search{display:flex;align-items:center;gap:8px;background:var(--panel);border:2px solid var(--fg);border-radius:8px;padding:0 12px}
.search:focus-within{border-color:var(--amber)}
.search input{flex:1;min-width:0;border:0;background:transparent;color:var(--fg);font:500 17px var(--body);padding:12px 0;outline:none}
.hash{font:700 15px var(--mono);color:var(--muted)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--panel);color:var(--fg);font:600 13px var(--body);padding:5px 12px;border-radius:99px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
a:focus-visible,button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.count{font-size:13px;color:var(--muted);margin:14px 0 6px}
.list{display:grid;gap:8px}
.row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px;text-decoration:none}
.row:hover{border-color:var(--muted)}
.row[hidden]{display:none}
.code{font:700 17px var(--mono);font-variant-numeric:tabular-nums}
.row .code{display:block;min-width:64px}
.ctl{display:block;font:700 10px var(--mono);letter-spacing:.08em}
.ctl.fanuc{color:var(--fanuc)}.ctl.sinumerik{color:var(--sie)}
.txt{min-width:0}.rtitle{display:block;font-weight:600}.rsub{display:block;font-size:13px;color:var(--muted)}
.cases{font:600 12px var(--mono);color:var(--ok);background:var(--ok-soft);padding:3px 8px;border-radius:99px;white-space:nowrap}
.empty{background:var(--panel);border:1px dashed var(--line);border-radius:8px;padding:20px;text-align:center;color:var(--muted);margin-top:8px}
.empty[hidden]{display:none}
.detail{margin-top:14px;display:grid;gap:14px}
.back{font-weight:600;font-size:14px;color:var(--muted);text-decoration:none}
.hd{background:var(--amber);color:var(--amber-ink);border-radius:8px;padding:14px 16px;display:grid;gap:2px}
.hd .ctl{color:var(--amber-ink);opacity:.8}
.hd h1{margin:0;font-size:20px;line-height:1.35;text-wrap:balance}
.hd .code{font-size:24px;margin-right:6px}
.hd .sub{font:500 13px var(--mono);opacity:.85}
section{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}
section h2{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
section p{margin:0}
ol,ul{margin:0;padding-left:20px;display:grid;gap:4px}
.case{border-top:1px dashed var(--line);padding-top:10px;margin-top:10px;display:grid;gap:4px}
.case:first-of-type{border-top:0;margin-top:0;padding-top:0}
.meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted)}
.tag-ok{font:700 11px var(--mono);padding:1px 7px;border-radius:4px;background:var(--ok-soft);color:var(--ok)}
.muted{color:var(--muted)}
.note{font-size:12px;color:var(--muted);margin-top:24px}
footer{font-size:12px;color:var(--muted);margin-top:8px}
