:root{--sky-1:#FFE7C2;--sky-2:#FFC09A;--sky-3:#FF9C86;--teal:#0E6E70;--teal-deep:#0B4146;--merah:#D4322C;--sun:#FFC24B;--ink:#13262B;--paper:#FFFFFF;--mist:#F2F6F5;--muted:#56676C;--line:#DCE4E3;--error:#B3261E;--font:"Archivo","Helvetica Neue",Arial,sans-serif;--gutter:clamp(16px,4vw,40px)}*,:after,:before{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--mist);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit}:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:4px}.wrap{max-width:960px;margin:0 auto;padding:0 var(--gutter)}h1,h2{font-stretch:125%;font-weight:900;line-height:1.02;letter-spacing:-.015em}h1,h2,p{margin:0}.top{background:linear-gradient(180deg,var(--sky-1),var(--sky-2) 70%,var(--sky-3))}.bar{justify-content:space-between;height:72px;gap:16px}.bar,.logo{display:flex;align-items:center}.logo{gap:10px;text-decoration:none;font-weight:900;font-stretch:125%;font-size:18px;line-height:1}.logo svg{width:28px;height:28px}.back{font-weight:600;font-size:15px;text-decoration:none}.back:hover{text-decoration:underline;text-underline-offset:4px}main{padding:36px 0 72px}.card{background:#fff;border-radius:22px;padding:clamp(22px,3.5vw,40px)}.eyebrow{font-weight:700;font-size:14px;color:var(--teal);letter-spacing:.04em;margin-bottom:8px}h1{font-size:clamp(28px,4vw,44px)}.sub{margin-top:12px;color:var(--muted);max-width:58ch}.cari{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px;margin-top:24px;max-width:560px}@media (max-width:520px){.cari{grid-template-columns:1fr}}label{display:block;font-weight:600;font-size:15px;margin-bottom:8px}input{width:100%;font:500 16px var(--font);padding:14px 15px;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(14,110,112,.15)}.btn{display:inline-flex;align-items:center;justify-content:center;font:700 16px/1 var(--font);padding:16px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap}.btn-ink{background:var(--ink);color:#fff}.btn-ink:hover{background:#26444B}.btn-line{border-color:var(--ink);background:transparent;color:var(--ink)}.btn[disabled]{opacity:.6;cursor:wait}.alert{margin-top:22px;border-radius:14px;padding:15px 18px;font-weight:600;font-size:15px}.alert.ok{background:#E3F1F0;color:var(--teal-deep)}.alert.no{background:#FCE8E6;color:var(--error)}.alert.warn{background:#FFF4DB;color:#8A6000}.hasil{margin-top:28px;border-top:2px solid var(--ink);padding-top:24px}.hasil-grid{display:grid;grid-template-columns:1fr 260px;grid-gap:28px;gap:28px;align-items:start}@media (max-width:760px){.hasil-grid{grid-template-columns:1fr}}.nama{font-stretch:125%;font-weight:900;font-size:26px;line-height:1.1}.meta{color:var(--muted);font-size:15px;margin-top:6px}dl{margin:18px 0 0;padding:0}dl div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}dt{color:var(--muted)}dd{margin:0;font-weight:600;text-align:right}.badge{display:inline-block;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;margin-top:12px}.badge.ok{background:#E3F1F0;color:var(--teal-deep)}.badge.warn{background:#FFF4DB;color:#8A6000}.badge.no{background:#FCE8E6;color:var(--error)}.qr{border:2px dashed var(--line);border-radius:16px;padding:14px;display:grid;place-items:center;background:#fff}.qr img{width:100%;max-width:220px;height:auto;display:block}.qr-note{font-size:13px;color:var(--muted);margin-top:10px;text-align:center}.info{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;margin-top:22px}@media (max-width:640px){.info{grid-template-columns:1fr}}.info div{border-top:2px solid var(--ink);padding-top:16px}.info b{display:block;font-size:17px;margin-bottom:6px}.info span{color:var(--muted);font-size:15px}.foot-note{margin-top:20px;font-size:13px;color:var(--muted);max-width:64ch}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}