:root{--bg:#f4efe6;--surface:#fffaf1;--ink:#2f2722;--accent:#b1562d;--accent-weak:#ead3b2;--ok:#21633b;--warn:#8a2f2f;--line:#d4c2a8}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(circle at 10% 20%,#fdf5e8 0,#f4efe6 35%,#efe5d8 100%);font-family:Noto Sans KR,Apple SD Gothic Neo,sans-serif}a{color:inherit;text-decoration:none}.page{max-width:1040px;margin:0 auto;min-height:100vh;padding:32px 20px 56px}.hero,.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 8px 30px rgba(78,53,33,.08)}.hero{margin-top:8vh;text-align:center}.stack{display:grid;grid-gap:16px;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px}.grid-2,.grid-3{display:grid;gap:12px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px}h1,h2,h3{margin:0 0 12px;font-family:"Noto Serif KR",Georgia,serif}p{margin:0;line-height:1.5}label{display:grid;grid-gap:6px;gap:6px;font-size:14px}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px}button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:10px;padding:10px 14px;cursor:pointer}button.secondary{background:#fff;color:var(--accent)}button.ghost{border-color:var(--line);color:var(--ink);background:#fff}button:disabled{opacity:.6;cursor:not-allowed}.badge-row{display:flex;flex-wrap:wrap;gap:8px}.badge{padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13px}.badge.ok{border-color:#6db989;background:#e6f8ee;color:var(--ok)}.badge.err{border-color:#e9a3a3;background:#fff1f1;color:var(--warn)}pre{margin:0;padding:12px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:12px;white-space:pre-wrap;word-break:break-word}.inline-actions{display:flex;flex-wrap:wrap;gap:8px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.helper{color:#5d4a3a;font-size:13px}@media (max-width:900px){.grid-2,.grid-3,.service-grid{grid-template-columns:1fr}.page{padding:20px 14px 42px}}