.pcodes{margin:.75rem 0 0;padding:.75rem .85rem;border:1px solid #dfe6f0;border-radius:14px;background:#f8fafc}
.pcodes__head{display:grid;gap:.2rem;margin:0 0 .65rem}
.pcodes__title{font-size:.92rem;color:#0f2648}
.pcodes__hint{font-size:.78rem;color:#5a6b7d;line-height:1.35}
.pcodes__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem;align-items:start}
.pcodes__qr{display:inline-block;padding:.35rem;background:#fff;border:1px solid #e3eaf2;border-radius:10px;line-height:0}
.pcodes__qr img,.pcodes__qr canvas{display:block}
.pcodes__caption{margin:.4rem 0 0;font-size:.78rem;color:#3d5266;line-height:1.35;word-break:break-word}
.pcodes__link{display:inline-block;margin-top:.25rem;font-size:.72rem;color:#2f6fe0;word-break:break-all}
.pcodes__bc{max-width:100%;height:auto}
.pcodes__bc-wrap--empty{display:flex;align-items:center;min-height:5rem;padding:.5rem;border:1px dashed #c7d2dc;border-radius:10px;background:#fff}
.ash-scan-btn{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;flex:0 0 auto;width:2.5rem;height:2.5rem;margin:0;padding:0;border:0;border-radius:10px;background:#e8eef7;color:#0f2648;cursor:pointer}
.ash-scan-btn:hover,.ash-scan-btn:focus-visible{background:#d7e4f6;outline:2px solid #2f6fe0;outline-offset:1px}
.ash-scan-btn svg{display:block}
.ash-scan{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1rem;background:rgba(8,16,32,.55)}
.ash-scan[hidden]{display:none!important}
.ash-scan__panel{width:min(28rem,100%);background:#fff;border-radius:16px;padding:1rem;box-shadow:0 18px 50px rgba(0,0,0,.28);display:grid;gap:.7rem}
.ash-scan__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}
.ash-scan__head h2{margin:0;font-size:1.05rem;color:#0f2648}
.ash-scan__head p{margin:.2rem 0 0;font-size:.84rem;color:#5a6b7d;line-height:1.35}
.ash-scan__close{border:0;background:#eef2f7;border-radius:999px;width:2rem;height:2rem;cursor:pointer;font-size:1.1rem;line-height:1}
.ash-scan__video-wrap{position:relative;background:#0b1220;border-radius:12px;overflow:hidden;aspect-ratio:4/3}
.ash-scan__video-wrap video,.ash-scan__reader{width:100%;height:100%;object-fit:cover;display:block}
.ash-scan__status{font-size:.84rem;color:#3d5266;min-height:1.2em}
.ash-scan__results{display:grid;gap:.45rem;max-height:12rem;overflow:auto}
.ash-scan__hit{display:grid;gap:.15rem;padding:.55rem .65rem;border:1px solid #dfe6f0;border-radius:10px;text-decoration:none;color:inherit;background:#f8fafc}
.ash-scan__hit:hover{border-color:#2f6fe0;background:#eef5ff}
.ash-scan__hit strong{color:#0f2648;font-size:.9rem}
.ash-scan__hit span{font-size:.8rem;color:#5a6b7d}
.ash-scan__manual{display:flex;gap:.4rem;flex-wrap:wrap}
.ash-scan__manual input{flex:1 1 8rem;font:inherit;padding:.45rem .55rem;border:1px solid #c7d2dc;border-radius:8px}
.ash-scan__manual button{font:inherit;padding:.45rem .7rem;border-radius:8px;border:0;background:#0f2648;color:#fff;cursor:pointer}
@media (max-width:720px){
  .ash-scan-btn{width:2.35rem;height:2.35rem}
  .pcodes{margin-top:.65rem}
}
