/* =============================================================
   DOODLY — Serviceable pincode checker + waitlist + admin
   Premium glass card, green success / elegant error, smooth pops.
   ============================================================= */
/* standalone checker card (product / account pages) */
.pincard { max-width:560px; margin:0 auto; border:1px solid var(--glass-brd); background:var(--glass-bg); backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur); border-radius:20px; padding:22px; box-shadow:var(--shadow); }
.pincard-h { display:flex; align-items:center; gap:.5rem; font-family:"Fraunces",serif; font-weight:600; color:var(--forest); font-size:1.15rem; }
.pincard-h svg { color:var(--leaf-600); }
.pincard-p { color:var(--ink-3); font-size:.88rem; margin:6px 0 14px; }

.pc-check { display:block; }
.pc-row { display:flex; align-items:center; gap:8px; position:relative; }
.pc-row .pc-ic { position:absolute; left:12px; color:var(--ink-3); display:grid; place-items:center; pointer-events:none; }
.pc-input { flex:1; padding:.78rem .9rem .78rem 2.5rem; border-radius:13px; border:1.5px solid var(--line); background:var(--surface);
  color:var(--forest); font:inherit; font-size:.96rem; letter-spacing:.04em; transition:border-color .2s, box-shadow .2s; }
.pc-input:focus { outline:none; border-color:var(--leaf); box-shadow:var(--ring); }
.pc-btn { flex:0 0 auto; padding:.78rem 1.1rem; border-radius:13px; border:0; cursor:pointer; font:inherit; font-weight:800; color:#fff;
  background:linear-gradient(120deg,#169A57,#1FAE66 60%,#2bc77a); box-shadow:0 8px 18px rgba(15,61,46,.2); transition:transform .18s, box-shadow .2s; }
.pc-btn:hover { transform:translateY(-2px); box-shadow:0 12px 24px rgba(15,61,46,.28); }
.pc-btn:active { transform:translateY(0); }

.pc-result:empty { display:none; }
.pc-result { margin-top:12px; }
.pc-msg { font-size:.82rem; color:var(--ink-3); }
.pc-line { margin-bottom:8px; }
.pc-badge { display:inline-flex; align-items:center; gap:.35rem; font-size:.72rem; font-weight:800; border-radius:999px; padding:.28rem .6rem; }
.pc-badge.ok { color:#fff; background:var(--leaf); box-shadow:0 4px 12px rgba(31,174,102,.3); }
.pc-badge.no { color:#fff; background:#c0392b; box-shadow:0 4px 12px rgba(192,57,43,.28); }

.pc-ok { border:1px solid var(--mint); background:var(--mint-soft); border-radius:16px; padding:14px 16px; }
.pc-ok .pc-head { font-family:"Fraunces",serif; font-weight:600; color:var(--forest); font-size:1.05rem; }
.pc-ok p { color:var(--ink-2); font-size:.9rem; margin:4px 0; }
.pc-ok .pc-meta { font-size:.78rem; font-weight:600; color:var(--leaf-600); margin-top:4px; }
.pc-pop { animation:pcPop .4s cubic-bezier(.2,1.1,.3,1); }

.pc-no { border:1px solid #f3b6ab; background:#fdeae6; border-radius:16px; padding:14px 16px; }
[data-theme="dark"] .pc-no { background:#371814; border-color:#5e271f; }
.pc-no .pc-head { font-weight:800; color:#a32b1b; font-size:.96rem; }
[data-theme="dark"] .pc-no .pc-head { color:#ff9d8a; }
.pc-no p { color:var(--ink-2); font-size:.86rem; margin:6px 0 12px; }

/* waitlist form */
.pc-wl-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px; }
.pc-f-full { grid-column:1/-1; }
.pc-f { width:100%; padding:.65rem .8rem; border-radius:11px; border:1px solid var(--line); background:var(--surface); color:var(--forest); font:inherit; font-size:.9rem; }
.pc-f:focus { outline:none; border-color:var(--leaf); box-shadow:var(--ring); }
.pc-wl-go { width:100%; }
.pc-wl.shake, .pc-wl.pc-wl-shake { animation:pcShake .42s cubic-bezier(.36,.07,.19,.97); }
.pc-wl-ok { display:none; align-items:center; gap:.4rem; color:var(--leaf-600); font-weight:700; font-size:.9rem; }
.pc-wl.done .pc-wl-grid, .pc-wl.done .pc-wl-go { display:none; }
.pc-wl.done .pc-wl-ok { display:flex; }
@media (max-width:440px){ .pc-wl-grid { grid-template-columns:1fr; } }

/* toast */
.pc-toast-wrap { position:fixed; left:50%; bottom:26px; transform:translateX(-50%); z-index:1255; display:flex; flex-direction:column; gap:8px; align-items:center; pointer-events:none; }
.pc-toast { display:flex; align-items:center; gap:.5rem; background:var(--forest); color:#fff; font-weight:600; font-size:.88rem; padding:.7rem 1rem; border-radius:14px; box-shadow:0 12px 30px rgba(15,61,46,.32); transform:translateY(14px); opacity:0; transition:transform .3s, opacity .3s; }
.pc-toast.show { transform:translateY(0); opacity:1; }
.pc-toast-ic { width:20px; height:20px; border-radius:50%; background:var(--leaf); display:grid; place-items:center; }

/* admin waitlist groups */
.pc-wl-list { display:grid; gap:12px; }
.pc-wlg { border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.pc-wlg-h { display:flex; align-items:center; gap:.5rem; padding:10px 12px; background:var(--surface-2); font-size:.88rem; color:var(--ink-2); }
.pc-wlg-h b { color:var(--forest); }
.pc-wlg-row { display:grid; grid-template-columns:1.2fr 1fr 1.4fr auto; gap:.5rem; padding:8px 12px; border-top:1px solid var(--line); font-size:.84rem; color:var(--ink-2); align-items:center; }
.pc-del { color:#c0392b; background:none; border:0; cursor:pointer; }

@keyframes pcPop { 0%{ opacity:.5; transform:scale(.97); } 100%{ opacity:1; transform:none; } }
@keyframes pcShake { 10%,90%{ transform:translateX(-1px); } 30%,50%,70%{ transform:translateX(-4px); } 40%,60%{ transform:translateX(4px); } }
@media (prefers-reduced-motion: reduce) { .pc-pop, .pc-wl-shake, .pc-toast { animation:none !important; } }
