@import "https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700;800&display=swap";:root{--paper:#fff;--ink:#111;--yellow:#f5c319;--line:#e6b100;--ok:#111;--no:#8a6a00;--radius:20px;--sans:"Prompt", "Noto Sans Thai", "Sarabun", "Segoe UI", sans-serif;--display:"Prompt", "Noto Sans Thai", "Sarabun", "Segoe UI", sans-serif}*{box-sizing:border-box}body{min-height:100svh;color:var(--ink);font-family:var(--sans);background:radial-gradient(circle at 10% 10%,#f5c31959 0,#0000 38%),radial-gradient(circle at 90% 20%,#1111111f 0,#0000 34%),linear-gradient(145deg,#fffce8 0%,#fff7cc 44%,#fff 100%);margin:0}#app{min-height:100svh}.page{place-items:center;min-height:100svh;padding:24px;display:grid}.card{border:2px solid var(--line);border-radius:var(--radius);background:var(--paper);width:min(680px,100%);padding:28px;box-shadow:0 20px 40px #11111126}.eyebrow{letter-spacing:.08em;color:#6a5300;margin:0;font-weight:700}h1,h2,h3,h4{font-family:var(--display);margin:8px 0 10px;line-height:1.2}h1{font-size:clamp(1.8rem,3.3vw,2.7rem)}h2{font-size:clamp(1.35rem,3vw,2rem)}p{margin:.3rem 0}.sub,.muted{color:#474747}.search-form{gap:10px;margin-top:18px;display:grid}label{font-weight:600}input,select{color:#111;background:#fff;border:2px solid #b28a00;border-radius:12px;padding:12px 14px;font-family:inherit;font-size:1rem}button{color:#111;cursor:pointer;background:linear-gradient(135deg,#f9d13f,#eab308);border:2px solid #111;border-radius:12px;padding:11px 16px;font-size:1rem;font-weight:700}button:hover{filter:brightness(1.04)}button:disabled{opacity:.75;cursor:wait}.ghost{color:#111;background:#fff}.processing-card{text-align:center}.spinner{aspect-ratio:1;border:7px solid #f5c31959;border-top-color:#111;border-radius:50%;width:70px;margin:0 auto 14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.result-card{margin-bottom:20px}.status{margin-top:12px;font-weight:700}.status.ok{color:var(--ok)}.status.no{color:var(--no)}.actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}code{background:#fff8dd;border:1px solid #ddb020;border-radius:8px;padding:.1rem .35rem}.cert-preview-wrap{width:min(1024px,100%)}.certificate{aspect-ratio:1.414;background:linear-gradient(#fffceb33,#fffceb33),url(/cert-template.png) 50%/cover no-repeat,radial-gradient(circle at 80% 18%,#f5c31929 0,#0000 35%),repeating-linear-gradient(45deg,#e0ab0008 0 12px,#ffffff2e 12px 24px);border:3px solid #e0ab00;border-radius:16px;width:100%;overflow:hidden}.cert-layer{text-align:center;align-content:center;justify-items:center;gap:5px;height:100%;padding:32px;display:grid}.cert-head{letter-spacing:.04em;color:#111;font-size:clamp(1.2rem,2.3vw,2rem);font-weight:800}.cert-sub{color:#7a5e00;letter-spacing:.25em}.cert-label{margin-top:8px}.certificate h4{color:#111;margin:4px 0;font-size:clamp(1.2rem,2.8vw,2.3rem)}.cert-meta{font-size:clamp(.9rem,1.8vw,1.1rem)}.cert-badge{border-radius:999px;margin-top:10px;padding:6px 14px;font-weight:700}.cert-date{color:#2f2f2f;margin-top:10px}@media (width<=740px){.page{padding:14px}.card{padding:20px}.cert-layer{align-content:start;gap:3px;padding:21% 16px 16px}.cert-head{font-size:clamp(.6rem,3vw,1rem)}.certificate h4{font-size:clamp(.75rem,3.8vw,1.2rem)}.cert-sub,.cert-meta,.cert-date{font-size:clamp(.5rem,2.2vw,.85rem)}.cert-badge{padding:4px 10px;font-size:clamp(.5rem,2.2vw,.85rem)}}
