.pmodal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.82);display:none;align-items:center;justify-content:center;z-index:99999}
.pmodal-overlay.show{display:flex}
.pmodal-card{background:#15181c;border:1px solid #2a2f36;border-radius:16px;padding:26px 24px;max-width:330px;width:90%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.6);color:#e8e8e8;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.pmodal-card h2{margin:0 0 4px;font-size:1.2rem}
.pmodal-card p{margin:0 0 14px;font-size:.85rem;color:#9aa3ad}
.pmodal-grid{touch-action:none;width:230px;height:230px;margin:0 auto;cursor:pointer}
.pmodal-grid svg{width:100%;height:100%;display:block}
.pattern-dot{fill:#3a4049;transition:fill .1s}
.pattern-dot.active{fill:#e0b341}
.pattern-line{fill:none;stroke:#e0b341;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.pmodal-msg{min-height:1.2em;margin-top:12px;font-size:.85rem;color:#9aa3ad}
.pmodal-msg.error{color:#ff6b6b}
.pmodal-msg.success{color:#4cd964}
.pmodal-grid.shake{animation:pshake .42s}
@keyframes pshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.pmodal-cancel{margin-top:14px;background:none;border:1px solid #3a4049;color:#9aa3ad;border-radius:8px;padding:6px 18px;cursor:pointer;font-size:.85rem}
.pmodal-cancel:hover{border-color:#5a6069;color:#e8e8e8}
