/* =====================================================================
   OY-OY-OYNAYALIM · Sadakat kartı (Café renkleriyle)
   ===================================================================== */
.lc{position:relative;width:100%;max-width:400px;margin:0 auto;aspect-ratio:1.586/1;border-radius:20px;overflow:hidden;
  color:var(--ink);background:
    radial-gradient(120% 90% at 0% 0%,var(--c1) 0%,transparent 60%),
    linear-gradient(135deg,var(--c) 0%,var(--c2) 100%);
  box-shadow:0 18px 40px -12px rgba(0,0,0,.55),0 2px 0 rgba(255,255,255,.18) inset,0 0 0 1px rgba(0,0,0,.12);
  padding:5.2% 6% 4.6%;display:flex;flex-direction:column;gap:3.2%;box-sizing:border-box;
  font-family:inherit;container-type:inline-size;text-align:left;isolation:isolate}
/* Guilloche-artige Linien + Glanz */
.lc::before{content:'';position:absolute;inset:0;z-index:-1;opacity:.13;
  background:repeating-radial-gradient(circle at 110% 120%,transparent 0 9px,var(--ink) 9px 10px)}
.lc-shine{position:absolute;inset:-40% -10% auto auto;width:70%;height:120%;z-index:-1;transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent)}
.lc-mark{position:absolute;right:-4%;bottom:-14%;font-size:62cqw;line-height:1;opacity:.09;transform:rotate(-14deg);z-index:-1;pointer-events:none;filter:grayscale(1)}
.lc-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2cqw;min-height:0}
.lc-top .lc-oy{justify-self:start}
.lc-top .lc-vlogo,.lc-top .lc-vname{justify-self:end}
/* Kartın başlığı: ortada, büyük — basılı kart gibi */
.lc-head{margin:0;text-align:center;font-size:6.6cqw;line-height:.98;font-weight:900;letter-spacing:.14em;
  text-shadow:0 2px 0 rgba(0,0,0,.18),0 4px 14px rgba(0,0,0,.18)}
.lc.light .lc-head{text-shadow:0 1px 0 rgba(255,255,255,.5)}
.lc-oy{height:13cqw;max-height:54px;max-width:100%;width:auto;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.lc.light .lc-oy{filter:none;mix-blend-mode:multiply}
.lc-vlogo{display:grid;place-items:center;background:#fff;border-radius:12px;padding:1.2cqw 2.2cqw;box-shadow:0 2px 6px rgba(0,0,0,.25);max-width:100%}
.lc-vlogo img{display:block;height:11cqw;max-height:46px;max-width:100%;width:auto;object-fit:contain}
.lc-vname{font-weight:900;font-size:4.4cqw;letter-spacing:.3px;text-align:right;line-height:1.1}
.lc-title b{display:block;font-size:4.6cqw;font-weight:800;line-height:1.15;letter-spacing:.04em;opacity:.95;text-shadow:0 1px 2px rgba(0,0,0,.18)}
.lc-dots{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:1.8cqw;margin-top:auto}
.lc-dot{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;max-width:12cqw;width:100%;justify-self:center;
  border:2px dashed color-mix(in srgb,var(--ink) 55%,transparent);background:color-mix(in srgb,var(--ink) 7%,transparent)}
.lc-dot b{font-size:2.8cqw;font-weight:800;opacity:.55}
.lc-dot i{font-style:normal;font-size:5.4cqw;line-height:1}
.lc-dot.on{border:0;background:#fff;box-shadow:0 2px 0 rgba(0,0,0,.18),0 0 0 2px color-mix(in srgb,var(--c) 70%,#fff) inset;transform:rotate(var(--rot));
  animation:lcStamp .35s cubic-bezier(.3,1.6,.5,1) both}
.lc-dot.gift{border-style:solid;border-color:color-mix(in srgb,var(--ink) 70%,transparent)}
.lc-dot.gift i{opacity:.55;filter:grayscale(.6)}
.lc-dot.gift.ready{background:#ffd54a;border-color:#fff;box-shadow:0 0 0 3px rgba(255,213,74,.45),0 0 18px rgba(255,213,74,.8);animation:lcPulse 1.4s ease-in-out infinite}
.lc-dot.gift.ready i{opacity:1;filter:none}
.lc-extra{font-size:2.8cqw;font-weight:800;opacity:.85;text-align:right;margin-top:-1%}
.lc-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;font-size:3cqw;line-height:1.25}
.lc-gift{opacity:.95}.lc-gift b{font-weight:900}
.lc-who{text-align:right;font-weight:800;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end;gap:1px;max-width:45%;overflow:hidden;text-overflow:ellipsis}
.lc-who code{font-family:ui-monospace,Consolas,monospace;font-size:2.8cqw;letter-spacing:.14em;opacity:.8}
.lc-title{display:flex;flex-direction:column;align-items:center;gap:1.4cqw;text-align:center;margin-top:-1%}
.lc-ribbon{flex:none;background:#ffd54a;color:#3b2a00;font-weight:900;font-size:2.7cqw;letter-spacing:.08em;padding:1.3cqw 2.6cqw;border-radius:999px;
  box-shadow:0 3px 8px rgba(0,0,0,.28);animation:lcPulse 1.4s ease-in-out infinite;white-space:nowrap}
@keyframes lcStamp{0%{transform:scale(1.6) rotate(var(--rot));opacity:0}100%{transform:scale(1) rotate(var(--rot));opacity:1}}
@keyframes lcPulse{50%{box-shadow:0 0 0 6px rgba(255,213,74,.25),0 0 26px rgba(255,213,74,.95)}}
@media (prefers-reduced-motion:reduce){.lc-dot.on,.lc-dot.gift.ready{animation:none}}

/* Misafir modalı */
.loyalty-modal{max-width:440px}
.loyalty-modal .lc{margin:6px auto 14px}
.lc-tabs{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:4px 0 10px}
.lc-tabs button{border:1.5px solid rgba(127,127,127,.35);background:transparent;color:inherit;border-radius:999px;padding:6px 12px;font-weight:800;font-size:13px;cursor:pointer}
.lc-tabs button.on{background:var(--tab,#5B4BE6);border-color:var(--tab,#5B4BE6);color:#fff}
.lc-qr{display:flex;align-items:center;gap:14px;background:#fff;color:#1b1633;border-radius:16px;padding:12px;margin-top:4px}
.lc-qr svg{width:112px;height:112px;flex:none}
.lc-qr p{margin:0;font-size:13px;line-height:1.4;color:#4a4566}
.lc-qr code{display:block;margin-top:6px;font-size:18px;font-weight:900;letter-spacing:.18em;color:#1b1633}

/* Café sayfası giriş kartı */
.loyalty-entry{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 12px;border:0;border-radius:18px;padding:12px 14px;cursor:pointer;text-align:left;
  color:#fff;background:linear-gradient(135deg,var(--c,#5B4BE6),color-mix(in srgb,var(--c,#5B4BE6) 55%,#000));box-shadow:0 10px 24px -10px rgba(0,0,0,.5);font:inherit}
.loyalty-entry .le-ico{width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:24px;flex:none}
.loyalty-entry b{display:block;font-size:15px}
.loyalty-entry small{display:block;font-size:12.5px;opacity:.88}
.loyalty-entry .le-prog{margin-left:auto;font-weight:900;font-size:13px;background:rgba(255,255,255,.2);border-radius:999px;padding:5px 10px;white-space:nowrap}
.loyalty-entry.ready .le-prog{background:#ffd54a;color:#3b2a00}

/* Admin: kart tasarım editörü */
.lp-edit .lp-preview{margin:4px 0 14px}
.lp-edit .lp-preview .lc{max-width:380px}
.lp-icons{display:flex;flex-wrap:wrap;gap:6px}
.lp-icons button{width:40px;height:40px;padding:0;margin:0;border-radius:11px;font-size:20px;background:#f3f1fa;border:2px solid transparent;color:inherit;box-shadow:none}
.lp-icons button.on{border-color:#5b4be6;background:#ebe8ff}
.lp-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lp-color{display:flex;gap:6px;align-items:center}
.lp-color input[type=color]{width:52px;height:42px;padding:2px;border-radius:10px;flex:none;cursor:pointer}
.lp-color .lp-brand{margin:0;padding:9px 10px;font-size:12.5px;flex:1;background:#f3f1fa;color:#3a3358;box-shadow:none}
.lp-actions{display:flex;gap:8px;margin-top:10px}
.lp-actions button{flex:1;margin:0}
.lp-actions .lp-del{flex:0 0 auto;background:#fdecea;color:#b3261e}
@media (max-width:520px){.lp-row{grid-template-columns:1fr}}

/* Kasa: kart üzerinde damga işlemleri */
.kl-prog{border:1px solid #e4e0f2;border-radius:16px;padding:12px;margin-top:12px;background:#faf9ff}
.kl-prog .lc{max-width:100%}
.kl-btns{display:flex;gap:8px;margin-top:10px}
.kl-btns button{margin:0!important;padding:13px 6px!important;font-size:15px!important;flex:1}
.kl-btns .kl-minus{flex:0 0 64px;background:#e8e6f0!important;color:#3a3358!important}
.kl-btns .kl-gift{background:#e0a400!important;color:#2a1d00!important}
.kl-sub{font-size:13px;color:#4a4566;margin:8px 2px 0}
