@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=light]{--surface:var(--card-bg);--surface2:var(--bg-sec);--accent:var(--primary);--accent-dim:#006fee1a;--accent-hover:var(--primary-h);--text:var(--fg);--text-dim:var(--fg-muted);--text-muted:var(--fg-muted);--success:#17c964;--warn:#f5a524;--error:#f31260;--radius:12px}[data-theme=dark]{--surface:#18181b;--surface2:#222228}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#006fee08 1px,#0000 1px),linear-gradient(90deg,#006fee08 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0}.wrap{z-index:1;width:100%;position:relative}.header{margin-bottom:40px}.badge{background:var(--accent-dim);color:var(--accent-hover);letter-spacing:.1em;text-transform:uppercase;border:1px solid #006fee4d;border-radius:99px;align-items:center;gap:6px;margin-bottom:14px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge:before{content:"◆";font-size:8px}h1{letter-spacing:-.03em;font-size:28px;font-weight:700;line-height:1.25}h1 span{color:var(--accent-hover)}.desc{color:var(--text-dim);margin-top:10px;font-size:14px;line-height:1.6}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.card-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;margin-bottom:16px;font-size:11px;font-weight:700;display:flex}.card-title:after{content:"";background:var(--border);flex:1;height:1px}label{color:var(--text-dim);margin-bottom:6px;font-size:13px;font-weight:500;display:block}input[type=text],input[type=password]{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;margin-bottom:14px;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:16px;transition:border-color .2s}input:focus{border-color:var(--accent)}input::placeholder{color:var(--text-muted)}.hint{color:var(--text-muted);margin-top:-10px;margin-bottom:14px;font-size:12.5px;line-height:1.6}.hint code{background:var(--border);color:var(--text);border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:11.5px}.token-cleared{color:var(--accent);align-items:flex-start;gap:6px;margin:-6px 0 14px;font-size:13px;line-height:1.5;display:flex}.token-cleared[hidden]{display:none}.token-cleared .ic{margin-top:.2em}.hint a{color:var(--accent);text-decoration:none}.hint a:hover{text-decoration:underline}.security-note{color:var(--text-dim);background:#006fee0f;border:1px solid #006fee33;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px 14px;font-size:12px;line-height:1.6;display:flex}.security-note .icon{color:var(--accent);flex-shrink:0;margin-top:1px;font-size:14px}.options{flex-wrap:wrap;gap:8px;margin-bottom:4px;display:flex}.opt-btn{background:var(--bg);border:1px solid var(--border);min-height:44px;color:var(--text-dim);cursor:pointer;text-align:center;border-radius:8px;flex:1;padding:8px;font-family:Noto Sans KR,sans-serif;font-size:14px;transition:all .15s}.opt-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-hover);font-weight:700}.run-row{gap:8px;display:flex}.btn-run{background:var(--accent);color:#fff;cursor:pointer;letter-spacing:-.01em;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;padding:14px;font-family:inherit;font-size:16px;font-weight:700;transition:background .15s,transform .1s;display:inline-flex}.btn-run:hover{background:var(--accent-hover)}.btn-run:active{transform:scale(.99)}.btn-run:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-stop{background:var(--card-bg);min-height:48px;color:var(--fg);border:1px solid var(--border);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-family:inherit;font-size:15px;font-weight:700;display:inline-flex}.btn-stop[hidden]{display:none}.btn-stop:hover{border-color:var(--accent);color:var(--accent)}.btn-stop:disabled{opacity:.6;cursor:wait}.progress-wrap{margin-bottom:16px;display:none}.progress-bar-bg{background:var(--border);border-radius:99px;height:4px;margin-bottom:10px;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--accent), var(--accent-hover));border-radius:99px;width:0%;height:100%;transition:width .3s}.progress-text{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:12px}.log-wrap{display:none}.log-header{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;margin-bottom:10px;font-size:11px;font-weight:700;display:flex}.log-header:after{content:"";background:var(--border);flex:1;height:1px}.log{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);border-radius:8px;max-height:260px;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.8;overflow-y:auto}.log-item{gap:8px;display:flex}.log-icon{flex:none;padding-top:.35em;display:inline-flex}.log-item.ok .log-icon{color:var(--success)}.log-item.skip .log-icon{color:var(--warn)}.log-item.err .log-icon{color:var(--error)}.log-item.info .log-icon{color:var(--accent)}.summary{border-radius:var(--radius);color:#0e8a43;text-align:center;background:#17c96414;border:1px solid #17c9644d;margin-bottom:16px;padding:14px 18px;font-size:14px;font-weight:600;line-height:1.5;display:none}.summary.warn{color:#a15c00;background:#f5a5241a;border-color:#f5a52466}.summary.err{color:#c20e4d;background:#f3126014;border-color:#f3126059}[data-theme=dark] .summary{color:#4ade80}[data-theme=dark] .summary.warn{color:#fbbf24}[data-theme=dark] .summary.err{color:#fb7185}.guide{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);margin-bottom:16px;padding:16px 20px}.guide-title{color:var(--accent-hover);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.guide ol{padding-left:18px}.guide li{color:var(--text-dim);margin-bottom:4px;font-size:13px;line-height:1.7}.guide li code{background:var(--border);color:var(--text);border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:11.5px}.guide a{color:var(--accent);text-decoration:none}.guide a:hover{text-decoration:underline}
