cloudflare
tcp/443 tcp/80 tcp/8443
Open service 172.67.201.96:80 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Length: 0
Connection: close
Location: https://pomppu.ppoms.cloud/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=kmtOrBRDus1ySiL2q6TQ%2F0CHRTNuYjrGQ4XQe%2B1OiQcGi0VS%2F5sRYF%2BU%2BT55jTv8NiqJqKTMIY2owsfNsRGgH902xD38pB3jrhdN64x6b1n3OQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319f5c10c28a-AMS
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3034::6815:24f2:8443 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=T%2BKertSnt6A%2BlUkSqY84dkBLpIHcMQ3Ybj7WvIsT8fGqzFOCRKsEkGZ4icEQN7SEqDr3zjYnjo7NqHlNnkj5HfYR2%2BRuRBt4uawhRgbnpI8%2BpCP0KHyF7vIdzMXNWg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=9,cfOrigin;dur=20
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319f48bfcf2f-SJC
alt-svc: h3=":8443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"fac143926e694e649e7c62bd372e46e3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 172.67.201.96:443 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=xEB2ERx3US3jJW7obMemFXFew1yb6qOijwhFZWYzbOkrwwm6Mh%2BCBphecS19d3yPmnj%2ByzSTwbHJEO7QN8AtA0er4hnhGXnBq%2B1KiZgWszFvwQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319f0ca67742-AMS
alt-svc: h3=":443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>
Open service 104.21.36.242:80 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Length: 0
Connection: close
Location: https://pomppu.ppoms.cloud/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=vQEkKRupbON7ndEbDq2nE6MywXsH6J4bBjSB0RK5nKZpzawMfp%2BbUJpt8ziVAzEerTUUnaSCM7uxQF5QNa5UoLkVrAFhBPEyQuJdc78O9j6Uqw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319ebcdcd3c1-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::ac43:c960:443 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=GVPeFIbzqfaDM1JLvJo20T%2F528lqNo2i1yZpdDksHr%2FB1RnC811P%2B9SEhX4Sbuu%2FnquiN1l%2BUQW4Zr5vhYA8bxqE%2BsmVL0aKoTN0NRwLdpl0%2Fcv3SS%2FetBzgXtkerw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319ece61d3b0-FRA
alt-svc: h3=":443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>
Open service 2606:4700:3032::ac43:c960:80 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Length: 0
Connection: close
Location: https://pomppu.ppoms.cloud/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=gkuHLGRaNL5%2FC5d06M4LMypDOPaMSRYEU%2B%2FwA8Xd%2BJrEsW%2FO2RCIfU6smXAGhbfmf2N0lP1uJcjg7rgJAfgO85%2Fw9G8AWBAXWGMBDlc4Txmw8Z8pt62xpzd7Vdffzg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319e6f82a06d-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.36.242:8443 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=LZt0hyXOBmLj8ygUuICpCrJA2cYpfDGiq3Fw3kIt%2FKlz21eEkWY5llo3a5nxnt58hulDYKgtgaIGt1AGiCKcCzbcEzWozp9uAUnAz38A1Tzhug%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=18
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319e4fd67327-EWR
alt-svc: h3=":8443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"fac143926e694e649e7c62bd372e46e3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 104.21.36.242:443 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=hRDdC2eqQqnUL6FInuv2WMFTfqm17PShw3bUmFjb7DUseU3CIN5uTKUdw0A70Gy51ALCic51vOkPk1wNYiiLNciIIs67XcsZf2mtzdAYdkVepw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=9,cfOrigin;dur=17
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319e4d522dae-EWR
alt-svc: h3=":443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"fac143926e694e649e7c62bd372e46e3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 172.67.201.96:8443 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=a2U6RW%2Fm3X6ulilVRL76sfNw7KXlOr5LrDwQ1tOhK9b7E%2Bar6oMFiFHKnVGTg9%2BOTgLrtrLsBfaGfRINDCYFqGv1SXLQzKw%2BTDc0Q2vQXHa7Fg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319e2da90050-LHR
alt-svc: h3=":8443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>
Open service 2606:4700:3034::6815:24f2:80 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Length: 0
Connection: close
Location: https://pomppu.ppoms.cloud/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=v4VcjzGqh%2FiWuO3Du4OuErS1X5fN0YlXDSdbTM%2FvgO087b8zSBETcfmb%2Fof14L17HzOrDsY%2BDzCGFtM1PPoct%2BC64iZQlHn9FFHn20No%2BJxrqfE0bd5N9n7Jm2nKgw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319e2f3f7e34-LHR
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3034::6815:24f2:443 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=pV5P4BBZOMZAgo7NmYS5JJpH9RxoZiO044M9SgebUSxHS89%2Bna121Zm4tup3%2B4rHYLR%2FygqiqP737LPVBpa8XdydtqhWgRO5L3HCX2ii58zJbqmQ3kRbcVQBNBf87A%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319e2ed1b96e-AMS
alt-svc: h3=":443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>
Open service 2606:4700:3032::ac43:c960:8443 · pomppu.ppoms.cloud
2026-01-09 10:18
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 10:19:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=JUGL2I8xjuswdzeHq6u0gCaIURoMb75DL1MXWl%2BO5ufVGVC1QHsx8UOIIvH7UkC3LVloz90KJe%2Ff5v71bekPLmhthYUgRtFFbEl9V1VCkvZRxyyZbZOHZw5gch86bw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bb3319e292bcd21-LHR
alt-svc: h3=":8443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>