:root{--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Apple SD Gothic Neo", Roboto, "Segoe UI", sans-serif;--font-mono:"SF Mono", ui-monospace, Menlo, Consolas, monospace;--brand:#00e752;--brand-700:#07d650}html[data-theme=dark]{--bg:#0d0f11;--bg-2:#111316;--surface:#16191d;--surface-2:#1b1f24;--surface-3:#22272d;--surface-hover:#1f242a;--border:#ffffff12;--border-2:#ffffff1c;--border-strong:#ffffff38;--text:#e7eaed;--text-2:#c4c9cf;--muted:#8b9197;--subtle:#5f656c;--on-accent:#07140b;--brand-fg:#38f178;--brand-bg:#00e75221;--brand-bd:#00e75252;--st-none-fg:#aab1b8;--st-none-bg:#ffffff0f;--st-none-bd:#ffffff24;--st-none-dot:#7e858d;--st-prog-fg:#ffc24d;--st-prog-bg:#ffb32021;--st-prog-bd:#ffb32057;--st-prog-dot:#ffb320;--st-pass-fg:#38f178;--st-pass-bg:#00e75221;--st-pass-bd:#00e75257;--st-pass-dot:#00e752;--st-fix-fg:#ff9a5c;--st-fix-bg:#ff7a4524;--st-fix-bd:#ff7a455c;--st-fix-dot:#ff7a45;--st-drop-fg:#ff7a78;--st-drop-bg:#fc585824;--st-drop-bd:#fc58585c;--st-drop-dot:#fc5858;--info-fg:#54b2ff;--info-bg:#0a91ff24;--info-bd:#0a91ff57;--danger:#fc5858;--danger-bg:#fc585821;--good:#38f178;--warn:#ffb320;--shadow-card:0 1px 2px #0006;--shadow-pop:0 12px 36px #0000008c;--add-line:#00e75229;--del-line:#fc585824}html[data-theme=light]{--bg:#f4f5f3;--bg-2:#eceeea;--surface:#fff;--surface-2:#f7f8f6;--surface-3:#f0f1ee;--surface-hover:#f3f4f1;--border:#e8e8e8;--border-2:#e0e0e0;--border-strong:#c2c2c2;--text:#111;--text-2:#333;--muted:#666;--subtle:#999;--on-accent:#07140b;--brand-fg:#07a23c;--brand-bg:#ebf9f1;--brand-bd:#9fe9bb;--st-none-fg:#5f656c;--st-none-bg:#f1f2ef;--st-none-bd:#dcdedb;--st-none-dot:#aeb4ba;--st-prog-fg:#9a6a00;--st-prog-bg:#fff5e0;--st-prog-bd:#f4d79a;--st-prog-dot:#f5a623;--st-pass-fg:#07843a;--st-pass-bg:#eafaf0;--st-pass-bd:#9fe9bb;--st-pass-dot:#0ac54e;--st-fix-fg:#c5571f;--st-fix-bg:#fff0e8;--st-fix-bd:#f6c6a8;--st-fix-dot:#ff7a45;--st-drop-fg:#d83a3a;--st-drop-bg:#ffeded;--st-drop-bd:#f6b9b9;--st-drop-dot:#fc5858;--info-fg:#0a73c7;--info-bg:#e8f4ff;--info-bd:#bcddf8;--danger:#e23b3b;--danger-bg:#ffeded;--good:#07843a;--warn:#9a6a00;--shadow-card:0 1px 2px #0000000d;--shadow-pop:0 12px 32px #00000024;--add-line:#eafaf0;--del-line:#ffeded}*,:before,:after{box-sizing:border-box}html,body{font-family:var(--font-sans);font-feature-settings:"ss03";background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}#root{height:100vh}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}input,textarea,select{font:inherit;color:inherit}::selection{background:#00e75247}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-2);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong);background-clip:padding-box}::-webkit-scrollbar-track{background:0 0}.material-symbols-outlined{letter-spacing:normal;white-space:nowrap;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-variation-settings:"wght" 400, "opsz" 20, "GRAD" 0;direction:ltr;font-family:Material Symbols Outlined;font-size:20px;font-style:normal;font-weight:400;line-height:1;display:inline-block}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.badge .dot{border-radius:999px;width:6px;height:6px}.st-none{color:var(--st-none-fg);background:var(--st-none-bg);border-color:var(--st-none-bd)}.st-prog{color:var(--st-prog-fg);background:var(--st-prog-bg);border-color:var(--st-prog-bd)}.st-pass{color:var(--st-pass-fg);background:var(--st-pass-bg);border-color:var(--st-pass-bd)}.st-fix{color:var(--st-fix-fg);background:var(--st-fix-bg);border-color:var(--st-fix-bd)}.st-drop{color:var(--st-drop-fg);background:var(--st-drop-bg);border-color:var(--st-drop-bd)}.st-info{color:var(--info-fg);background:var(--info-bg);border-color:var(--info-bd)}.kbd{min-width:20px;height:20px;font:600 11px/1 var(--font-mono);color:var(--text-2);background:var(--surface-3);border:1px solid var(--border-2);border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 6px;display:inline-flex}.btn{transition:background .15s var(--ease,ease-out), border-color .15s, opacity .15s, transform 80ms;white-space:nowrap;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:600;line-height:1;display:inline-flex}.btn:active{transform:translateY(.5px)}.btn-primary{background:var(--brand);color:var(--on-accent)}.btn-primary:hover{background:#1aef67}.btn-dark{background:var(--surface-3);color:var(--text);border-color:var(--border-2)}.btn-dark:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn-ghost{color:var(--text-2);border-color:var(--border-2);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--st-drop-bd)}.btn-danger:hover{background:var(--danger);color:#fff}.btn:disabled{background:var(--surface-2);color:var(--subtle);border-color:var(--border)}.btn-sm{padding:6px 10px;font-size:12px}.btn-lg{padding:12px 18px;font-size:14px}.chip{border:1px solid var(--border-2);color:var(--muted);background:var(--surface);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:6px 11px;font-size:12px;font-weight:500;line-height:1;transition:all .13s ease-out;display:inline-flex}.chip:hover{color:var(--text);border-color:var(--border-strong)}.chip.on{color:var(--text);border-color:var(--border-strong);background:var(--surface-3)}.chip.on-brand{color:var(--brand-fg);border-color:var(--brand-bd);background:var(--brand-bg)}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:12px}.field{background:var(--surface-2);width:100%;color:var(--text);border:1px solid var(--border-2);border-radius:8px;outline:none;padding:9px 12px;font-size:13px;transition:border-color .13s,background .13s}.field:focus{border-color:var(--border-strong);background:var(--surface)}.field::placeholder{color:var(--subtle)}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface);z-index:1;padding:10px 14px;font-size:11px;font-weight:600;position:sticky;top:0}.tbl td{border-bottom:1px solid var(--border);color:var(--text-2);padding:11px 14px}.tbl tr:hover td{background:var(--surface-2)}.tbl tr:last-child td{border-bottom:0}.divider{background:var(--border);border:0;height:1px;margin:0}.navitem{text-align:left;width:100%;color:var(--muted);border-radius:8px;align-items:center;gap:11px;padding:9px 12px;font-size:13px;font-weight:600;transition:background .12s,color .12s;display:flex}.navitem:hover{background:var(--surface-2);color:var(--text)}.navitem.on{background:var(--surface-3);color:var(--text)}.navitem.on .material-symbols-outlined{color:var(--brand-fg)}.railitem{width:100%;color:var(--muted);border-radius:9px;flex-direction:column;align-items:center;gap:3px;padding:10px 4px;font-size:9.5px;font-weight:600;transition:all .12s;display:flex;position:relative}.railitem:hover{background:var(--surface-2);color:var(--text)}.railitem.on{color:var(--brand-fg)}.railitem.on:before{content:"";background:var(--brand);border-radius:999px;width:3px;position:absolute;top:12px;bottom:12px;left:-8px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.85s linear infinite spin}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.pulse{animation:1.4s ease-in-out infinite pulse}@keyframes shimmer{0%{background-position:-340px 0}to{background-position:340px 0}}.skel{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 37%, var(--surface-2) 63%);background-size:680px 100%;border-radius:6px;animation:1.4s linear infinite shimmer}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.tnum{font-variant-numeric:tabular-nums}.fade-up{animation:fadeUp .24s var(--ease-out,cubic-bezier(.16,1,.3,1)) both}:root{--ease-out:cubic-bezier(.16,1,.3,1)}
