:root{--bg:#fff;--fg:#17202a;--mut:#58636f;--line:#d9dee5;--card:#f4f7f8;--acc:#0f766e;--acc-fg:#fff;--warn:#fff4e0;--warn-b:#e2a33b;--err:#fdeaea;--err-b:#d64545;--ok:#e6f5f2}
@media(prefers-color-scheme:dark){:root{--bg:#10151a;--fg:#e6ebf0;--mut:#9aa6b2;--line:#2a323b;--card:#182027;--acc:#4fd1c1;--acc-fg:#07211e;--warn:#2d2410;--warn-b:#b98a2e;--err:#321818;--err-b:#c95a5a;--ok:#12302b}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.65 system-ui,-apple-system,"Segoe UI","Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",sans-serif}
html[lang=ko] .en,html[lang=en] .ko{display:none!important}
a{color:var(--acc)}
.wrap{max-width:1000px;margin:0 auto;padding:0 16px}
header.top{border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;gap:12px;min-height:56px;flex-wrap:wrap}
.brand{font-weight:700;color:var(--fg);text-decoration:none;display:flex;align-items:center;gap:8px}
nav.m{margin-left:auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:.92rem}
nav.m a{color:var(--mut);text-decoration:none}
button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:8px;padding:6px 12px;min-height:38px}
button:hover:not(:disabled){border-color:var(--acc)}button:disabled{opacity:.5;cursor:default}
button.pri{background:var(--acc);color:var(--acc-fg);border-color:var(--acc);font-weight:600}
input,select,textarea{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 8px}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
h1{font-size:1.6rem;line-height:1.3;margin:28px 0 8px}h2{font-size:1.2rem;margin:30px 0 8px}
.lead{color:var(--mut)}
#drop{display:block;border:2px dashed var(--line);border-radius:14px;background:var(--card);padding:30px 16px;text-align:center;cursor:pointer}
#drop:hover,#drop.over,#drop:focus-within{border-color:var(--acc)}
#drop input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
#drop strong{display:block;font-size:1.1rem}#drop small{color:var(--mut)}
.priv{display:inline-block;margin-top:8px;padding:3px 10px;border-radius:99px;background:var(--ok);font-size:.88rem}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}
.samples{font-size:.9rem;color:var(--mut)}
.msg{margin:12px 0;padding:9px 14px;border-radius:10px;border:1px solid var(--line)}
.msg.err{background:var(--err);border-color:var(--err-b)}.msg.warn{background:var(--warn);border-color:var(--warn-b)}.msg.ok{background:var(--ok);border-color:var(--acc)}.msg.info{background:var(--card)}
.bar{border-bottom:1px solid var(--line);padding:8px 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bar .meta{flex:1 1 200px;min-width:0}.bar .meta b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar .meta span{color:var(--mut);font-size:.85rem}.warnx{color:var(--warn-b)!important;font-weight:600}
.tools{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--card)}
legend{font-size:.85rem;color:var(--mut);padding:0 6px}
fieldset label{font-size:.9rem}
fieldset input[type=number]{width:5rem}
table.grid{width:100%;border-collapse:collapse}
.grid th{text-align:left;font-size:.85rem;color:var(--mut);padding:4px 6px;border-bottom:1px solid var(--line)}
.grid td{padding:4px 6px;vertical-align:top;border-bottom:1px solid var(--line)}
.grid td.n{color:var(--mut);width:2.5rem;font-size:.85rem;padding-top:10px}
.grid input.t{width:9.2rem;font-variant-numeric:tabular-nums}
.grid textarea{width:100%;min-width:12rem;resize:vertical}
.grid td.ac{white-space:nowrap}.grid td.ac button{padding:3px 8px;min-height:32px;font-size:.85rem}
.grid tr.bad td{background:var(--err)}.grid tr.overlap td{background:var(--warn)}.grid tr.empty td{background:var(--card)}
.note{font-size:.88rem;color:var(--mut)}
.limits{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px 18px 12px;margin:24px 0}
details{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:var(--card)}
summary{cursor:pointer;padding:12px 14px;font-weight:600;min-height:44px}details>div{padding:0 14px 12px}
footer.bot{border-top:1px solid var(--line);margin-top:48px;padding:20px 0 40px;color:var(--mut);font-size:.9rem}footer.bot a{color:var(--mut)}
table.cmp{border-collapse:collapse;width:100%}.cmp th,.cmp td{border:1px solid var(--line);padding:6px 10px;text-align:left}
.scroll{overflow-x:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;z-index:9;background:var(--bg);padding:8px}
[hidden]{display:none!important}
@media(max-width:640px){h1{font-size:1.4rem}nav.m{margin-left:0;width:100%}.grid input.t{width:7.6rem}}
