:root{--brand:#7c6eff;--brand-strong:#5b47e0;--btn-hover:#6a57f0;--brand-dark:#5b47e0;--bg:#f4f2fe;--surface:#fff;--card:#fff;--heading:#1b1633;--text:#2a2540;--muted:#736e88;--placeholder:rgba(42,37,64,.38);--border:#e7e1fa;--border-h:#cdc2f5;--line:#eeeafb;--ok:#15a66b;--danger:#e5484d;--input-bg:#faf9ff;--field-focus-bg:#f3f0ff;--hover:#f1edfd;--row-hover:rgba(124,110,255,.06);--th:#8b86a0;--secondary-bg:#f1edfd;--secondary-text:#5b5470;--secondary-border:#e7e1fa;--code-bg:#f5f2fe;--nav-active-bg:rgba(124,110,255,.14);--nav-active-text:#5b47e0;--badge-ok-bg:rgba(21,166,107,.12);--badge-brand-bg:rgba(124,110,255,.14);--alert-err-bg:rgba(229,72,77,.08);--alert-ok-bg:rgba(21,166,107,.1);--radius:14px;--shadow:0 1px 2px rgba(40,30,90,.05),0 8px 24px rgba(40,30,90,.08);--shadow-lg:0 24px 60px rgba(70,50,140,.18)}html[data-theme=dark]{--brand:#7c6eff;--brand-strong:#a99fff;--btn-hover:#9b8fff;--brand-dark:#443a7d;--bg:#05050f;--surface:#08081a;--card:#0e0e22;--heading:#fff;--text:hsla(0,0%,100%,.85);--muted:hsla(0,0%,100%,.4);--placeholder:hsla(0,0%,100%,.2);--border:rgba(124,110,255,.12);--border-h:rgba(124,110,255,.28);--line:hsla(0,0%,100%,.05);--ok:#5dca8f;--danger:#ff6b6b;--input-bg:hsla(0,0%,100%,.03);--field-focus-bg:rgba(124,110,255,.05);--hover:rgba(124,110,255,.08);--row-hover:rgba(124,110,255,.04);--th:hsla(0,0%,100%,.28);--secondary-bg:hsla(0,0%,100%,.04);--secondary-text:hsla(0,0%,100%,.7);--secondary-border:hsla(0,0%,100%,.09);--code-bg:hsla(0,0%,100%,.03);--nav-active-bg:rgba(124,110,255,.14);--nav-active-text:#a99fff;--badge-ok-bg:rgba(93,202,143,.14);--badge-brand-bg:rgba(124,110,255,.16);--alert-err-bg:hsla(0,100%,71%,.08);--alert-ok-bg:rgba(93,202,143,.1);--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 30px rgba(0,0,0,.35);--shadow-lg:0 24px 70px rgba(0,0,0,.6)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(124,110,255,.3);border-radius:3px}.container{max-width:1040px}.container,.narrow{margin:0 auto;padding:24px 18px}.narrow{max-width:460px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}h1{font-size:26px;margin:0 0 6px;letter-spacing:-.02em}h1,h2{color:var(--heading)}h2{font-size:19px;margin:0 0 12px;letter-spacing:-.01em}h3{font-size:13px;margin:0 0 8px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}p{line-height:1.55}.muted{color:var(--muted)}.small{font-size:13px}label{display:block;font-size:12px;font-weight:500;margin:14px 0 6px;color:var(--muted)}input,select{width:100%;padding:12px 14px;font-size:16px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--text);outline:none;transition:border-color .15s,background .15s}input::placeholder{color:var(--placeholder)}input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(124,110,255,.15);background:var(--field-focus-bg)}select option{background:var(--surface);color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 18px;font-size:15px;font-weight:600;color:#fff;background:var(--brand);border:none;border-radius:10px;cursor:pointer;transition:background .15s ease,transform .05s ease}.btn:hover{background:var(--btn-hover);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:var(--secondary-bg);color:var(--secondary-text);border:1px solid var(--secondary-border)}.btn.secondary:hover{background:var(--hover);color:var(--heading)}.btn.ghost{background:transparent;color:var(--brand)}.btn.danger{background:rgba(229,72,77,.12);color:var(--danger);border:1px solid rgba(229,72,77,.22)}.btn.danger:hover{background:rgba(229,72,77,.2)}.btn.auto{width:auto;padding:9px 16px;font-size:14px}.row{display:flex;gap:12px;flex-wrap:wrap}.grid{display:grid;grid-gap:14px;gap:14px}.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width:640px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}}.topbar{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar .inner{max-width:1040px;margin:0 auto;padding:12px 18px;justify-content:space-between;gap:12px}.brand,.topbar .inner{display:flex;align-items:center}.brand{font-weight:800;font-size:18px;letter-spacing:-.02em;gap:9px;color:var(--heading)}.topbar .linklike{color:var(--muted)}.topbar .linklike:hover{color:var(--brand)}.nav{display:flex;gap:6px;flex-wrap:wrap}.nav a{padding:8px 13px;border-radius:9px;color:var(--muted);font-weight:600;font-size:14px}.nav a:hover{background:var(--hover);color:var(--brand);text-decoration:none}.nav a.active{background:var(--brand);color:#fff}.nly-admin .topbar{background:linear-gradient(100deg,#1a1340,var(--brand))}.nly-admin .topbar .linklike{color:hsla(0,0%,100%,.85)}.nly-admin .topbar .linklike:hover{color:#fff}.nly-admin .nav a{color:hsla(0,0%,100%,.78)}.nly-admin .nav a:hover{background:hsla(0,0%,100%,.16);color:#fff}.nly-admin .nav a.active{background:hsla(0,0%,100%,.26);color:#fff}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--brand-dark),var(--brand))}.stat .value{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--heading);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .label{color:var(--muted);font-size:13px;margin-top:2px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--th);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.08em}td strong{color:var(--heading)}tbody tr{transition:background .12s}tbody tr:hover{background:var(--row-hover)}.tableWrap{overflow-x:auto}.cell-actions-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}@media (max-width:640px){table.table-cards thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}table.table-cards,table.table-cards tbody,table.table-cards td,table.table-cards tr{display:block;width:100%}table.table-cards{padding:10px}table.table-cards tr{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:12px 14px;margin-bottom:10px}table.table-cards tr:last-child{margin-bottom:0}table.table-cards tr:hover{background:var(--card)}table.table-cards td{border-bottom:none;padding:5px 0;font-size:14px}table.table-cards td[data-label]:before{content:attr(data-label);display:block;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--th);margin-bottom:2px}table.table-cards td.cell-name{font-size:15px;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--line)}table.table-cards td.cell-actions{padding-top:10px;margin-top:6px;border-top:1px solid var(--line)}table.table-cards td.cell-actions .cell-actions-row{justify-content:flex-start;gap:8px}table.table-cards td.cell-actions .cell-actions-row>.btn{flex:1 1 auto;min-width:104px;text-align:center;justify-content:center}table.table-cards td.cell-actions .cell-actions-row>input{flex:0 0 68px}.nav{flex-wrap:wrap;gap:6px}.nav a{flex:1 1 28%;min-width:0;text-align:center;white-space:nowrap;padding:9px 8px;font-size:13.5px}}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700}.badge.ok{background:var(--badge-ok-bg);color:var(--ok)}.badge.brand{background:var(--badge-brand-bg);color:var(--brand-strong)}.alert{padding:12px 14px;border-radius:10px;font-size:14px;margin:12px 0;border:1px solid transparent}.alert.err{background:var(--alert-err-bg);color:var(--danger);border-color:rgba(229,72,77,.2)}.alert.ok{background:var(--alert-ok-bg);color:var(--ok);border-color:rgba(21,166,107,.2)}.qrbox{background:#fff;padding:18px;border-radius:14px;border:1px solid var(--border);display:inline-block}.loyalty{position:relative;overflow:hidden;isolation:isolate;border-radius:18px;color:var(--card-ink,#fff);border:1px solid var(--card-line,hsla(0,0%,100%,.12));box-shadow:0 1px 0 hsla(0,0%,100%,.05) inset,var(--shadow-lg);background:radial-gradient(130% 150% at 105% -12%,hsla(0,0%,100%,.09),transparent 55%),radial-gradient(1.3px 1.3px at 18% 30%,hsla(0,0%,100%,.5),transparent),radial-gradient(1px 1px at 72% 18%,hsla(0,0%,100%,.36),transparent),radial-gradient(1.4px 1.4px at 88% 60%,hsla(0,0%,100%,.42),transparent),radial-gradient(1px 1px at 36% 74%,hsla(0,0%,100%,.3),transparent),radial-gradient(1px 1px at 60% 46%,hsla(0,0%,100%,.24),transparent),var(--card-grad,linear-gradient(160deg,#34343c 0,#0c0c12 52%,#050507 100%))}.loyalty:before{content:"";position:absolute;inset:0;z-index:0;border-radius:18px;background-image:repeating-linear-gradient(115deg,hsla(0,0%,100%,.03) 0 1px,transparent 1px 3px);mix-blend-mode:overlay;pointer-events:none}.loyalty .lc-body{padding:18px 20px 14px;position:relative;z-index:1}.loyalty .top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.loyalty .tinfo{display:flex;align-items:center;gap:10px;min-width:0}.loyalty .tlogo{width:34px;height:34px;border-radius:8px;object-fit:contain;background:#fff;padding:2px;flex-shrink:0}.loyalty .tlogo.dark-chip{background:#24242c}.loyalty .merchant{font-size:16px;font-weight:600;line-height:1.2;letter-spacing:-.01em}.loyalty .kind{display:block;margin-top:2px;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--card-ink-soft,hsla(0,0%,100%,.55))}.loyalty .mark-text{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--card-accent,#9fb4ff)}.loyalty .lc-reward{display:block;margin-top:3px;font-size:12px;font-weight:600;line-height:1.3;color:var(--card-ink,#fff);letter-spacing:.01em}.loyalty .lc-bg-logo{position:absolute;right:-8px;bottom:-8px;width:64%;max-height:82%;object-fit:contain;opacity:.28;z-index:0;pointer-events:none}.loyalty .lc-bg-logo.mult{mix-blend-mode:multiply;opacity:.3}.loyalty .lc-bg-logo.scr{mix-blend-mode:screen;opacity:.58}.loyalty .lc-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.loyalty .lc-bg-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.62));z-index:0}.loyalty.has-bg:before{display:none}.constellation{width:100%;height:96px;display:block}.loyalty .points{display:flex;align-items:baseline;gap:8px}.loyalty .points b{font-size:38px;font-weight:300;line-height:1;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.loyalty .points span{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--card-ink-soft,hsla(0,0%,100%,.55))}.loyalty .points .pts-goal{margin-left:auto;letter-spacing:.04em;text-transform:none;font-weight:500;opacity:.9}.loyalty .lc-bar{height:10px;border-radius:999px;background:var(--card-line,hsla(0,0%,100%,.15));overflow:hidden}.loyalty .lc-bar-fill{height:100%;border-radius:999px;background:var(--card-accent,#9fb4ff);transition:width .5s cubic-bezier(.4,0,.2,1)}.loyalty .track{margin-top:14px;height:5px;border-radius:99px;background:var(--card-line,hsla(0,0%,100%,.16));overflow:hidden}.loyalty .track>div{height:100%;border-radius:99px;background:var(--card-accent,#9fb4ff)}.loyalty .track-note{margin-top:11px;font-size:12.5px;line-height:1.35;color:var(--card-ink-soft,hsla(0,0%,100%,.6));position:relative;z-index:1}.loyalty .perf{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid var(--card-line,hsla(0,0%,100%,.14));position:relative;z-index:1}.loyalty .perf .name{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.loyalty .perf .lc-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--card-ink-soft,hsla(0,0%,100%,.55))}.loyalty .lc-progress{min-height:96px;display:flex;flex-direction:column;justify-content:center;gap:12px;margin:8px 0 0}.loyalty .lc-stamps{display:flex;flex-wrap:wrap;gap:8px}.loyalty .lc-stamp{width:16px;height:16px;display:inline-block;background:var(--card-accent,#9fb4ff)}.loyalty .lc-stamp.off{background:var(--card-ink-soft,hsla(0,0%,100%,.4));opacity:.4}.loyalty .motif-dot,.wallet-banner .motif-dot{border-radius:50%}.loyalty .motif-diamond,.wallet-banner .motif-diamond{border-radius:3px;transform:rotate(45deg)}.loyalty .motif-leaf,.wallet-banner .motif-leaf{border-radius:0 100% 0 100%}.loyalty .motif-star,.wallet-banner .motif-star{-webkit-clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.loyalty .motif-check,.wallet-banner .motif-check{-webkit-clip-path:polygon(43% 72%,14% 45%,23% 36%,43% 54%,78% 19%,87% 28%);clip-path:polygon(43% 72%,14% 45%,23% 36%,43% 54%,78% 19%,87% 28%)}.loyalty .motif-punch,.wallet-banner .motif-punch{border-radius:50%}.loyalty .motif-punch.off,.wallet-banner .motif-punch.off{background:transparent;border:2px solid var(--card-ink-soft,rgba(0,0,0,.3));opacity:.55}.loyalty .lc-cro{width:18px;height:16px;flex-shrink:0;color:var(--card-accent,#9fb4ff)}.loyalty .lc-cro.off{color:var(--card-ink-soft,hsla(0,0%,100%,.4));opacity:.45}.loyalty .motif-teddy,.wallet-banner .motif-teddy{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='6.5' cy='7' r='3.2' fill='black'/%3E%3Ccircle cx='17.5' cy='7' r='3.2' fill='black'/%3E%3Ccircle cx='12' cy='14' r='7.5' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='6.5' cy='7' r='3.2' fill='black'/%3E%3Ccircle cx='17.5' cy='7' r='3.2' fill='black'/%3E%3Ccircle cx='12' cy='14' r='7.5' fill='black'/%3E%3C/svg%3E") center/contain no-repeat}.loyalty .motif-scissors,.wallet-banner .motif-scissors{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12 L5 2 L7.5 1 L13.2 10.2 Z' fill='black'/%3E%3Cpath d='M12 12 L19 2 L16.5 1 L10.8 10.2 Z' fill='black'/%3E%3Cpath d='M12 12 L9 16 L7 14.8 L10.5 10.5 Z' fill='black'/%3E%3Cpath d='M12 12 L15 16 L17 14.8 L13.5 10.5 Z' fill='black'/%3E%3Cpath fill-rule='evenodd' d='M3.4 18.5a3.4 3.4 0 1 0 6.8 0a3.4 3.4 0 1 0 -6.8 0ZM5.2 18.5a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0Z' fill='black'/%3E%3Cpath fill-rule='evenodd' d='M13.6 18.5a3.4 3.4 0 1 0 6.8 0a3.4 3.4 0 1 0 -6.8 0ZM15.4 18.5a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12 L5 2 L7.5 1 L13.2 10.2 Z' fill='black'/%3E%3Cpath d='M12 12 L19 2 L16.5 1 L10.8 10.2 Z' fill='black'/%3E%3Cpath d='M12 12 L9 16 L7 14.8 L10.5 10.5 Z' fill='black'/%3E%3Cpath d='M12 12 L15 16 L17 14.8 L13.5 10.5 Z' fill='black'/%3E%3Cpath fill-rule='evenodd' d='M3.4 18.5a3.4 3.4 0 1 0 6.8 0a3.4 3.4 0 1 0 -6.8 0ZM5.2 18.5a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0Z' fill='black'/%3E%3Cpath fill-rule='evenodd' d='M13.6 18.5a3.4 3.4 0 1 0 6.8 0a3.4 3.4 0 1 0 -6.8 0ZM15.4 18.5a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat}.loyalty .motif-tshirt,.wallet-banner .motif-tshirt{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 3 L4 5 L2 9 L6 10 L6 21 L18 21 L18 10 L22 9 L20 5 L16 3 Q12 6 8 3 Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 3 L4 5 L2 9 L6 10 L6 21 L18 21 L18 10 L22 9 L20 5 L16 3 Q12 6 8 3 Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat}.loyalty .lc-mark{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.loyalty .lc-chip{width:26px;height:18px;border-radius:4px;background:var(--card-accent,#c9a24b);display:block}.loyalty .lc-dash{margin:12px 0 2px;border-top:1.5px dashed var(--card-line,hsla(0,0%,100%,.28))}.loyalty.tpl-ardoise,.loyalty.tpl-bakery,.loyalty.tpl-botanique,.loyalty.tpl-fashion,.loyalty.tpl-kraft,.loyalty.tpl-luxe,.loyalty.tpl-memphis,.loyalty.tpl-metal,.loyalty.tpl-neon,.loyalty.tpl-pastel,.loyalty.tpl-punch,.loyalty.tpl-salon,.loyalty.tpl-sport,.loyalty.tpl-toys{background:var(--card-grad,linear-gradient(160deg,#34343c 0,#0c0c12 52%,#050507 100%))}.loyalty.tpl-ardoise:before,.loyalty.tpl-bakery:before,.loyalty.tpl-botanique:before,.loyalty.tpl-fashion:before,.loyalty.tpl-kraft:before,.loyalty.tpl-luxe:before,.loyalty.tpl-memphis:before,.loyalty.tpl-metal:before,.loyalty.tpl-neon:before,.loyalty.tpl-pastel:before,.loyalty.tpl-punch:before,.loyalty.tpl-salon:before,.loyalty.tpl-sport:before,.loyalty.tpl-toys:before{display:none}.wallet-banner{position:relative;overflow:hidden;isolation:isolate;width:680px;min-height:228px;box-sizing:border-box;padding:32px 38px;border-radius:0;color:var(--card-ink,#fff);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(125% 150% at 100% -10%,hsla(0,0%,100%,.12),transparent 55%),var(--card-grad,linear-gradient(160deg,#34343c 0,#0c0c12 52%,#050507 100%))}.wallet-banner .wb-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.wallet-banner .wb-bg-scrim{position:absolute;inset:0;background:linear-gradient(105deg,rgba(0,0,0,.68),rgba(0,0,0,.44) 52%,rgba(0,0,0,.3));z-index:0}.wallet-banner .wb-bg-logo{position:absolute;right:-14px;bottom:-18px;width:38%;max-height:130%;object-fit:contain;z-index:0;pointer-events:none}.wallet-banner .wb-bg-logo.mult{mix-blend-mode:multiply;opacity:.24}.wallet-banner .wb-bg-logo.scr{mix-blend-mode:screen;opacity:.46}.wallet-banner .wb-emblem{position:absolute;right:-34px;bottom:-46px;width:240px;height:240px;background:var(--card-accent,#9fb4ff);opacity:.14;z-index:0;pointer-events:none}.wallet-banner .wb-emblem-cro{position:absolute;right:-8px;bottom:-28px;width:224px;height:198px;color:var(--card-accent,#9fb4ff);opacity:.16;z-index:0;pointer-events:none}.wallet-banner.has-bg .wb-emblem,.wallet-banner.has-bg .wb-emblem-cro{display:none}.wallet-banner .wb-nly{position:absolute;top:18px;right:18px;z-index:2;padding:5px 11px;border-radius:999px;background:var(--card-line,hsla(0,0%,100%,.16));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--card-ink,#fff)}.wallet-banner .wb-nly-chip{position:absolute;top:18px;right:78px;z-index:2;width:24px;height:17px;border-radius:4px;background:var(--card-accent,#c9a24b)}.wallet-banner.wb-strip{width:680px;height:261px;min-height:0;padding:26px 36px}.wallet-banner.wb-strip .wb-emblem{right:-30px;bottom:-40px;width:210px;height:210px}.wallet-banner.wb-strip .wb-emblem-cro{right:-6px;bottom:-24px;width:196px;height:174px}.wallet-banner.wb-strip .wb-kind{margin-bottom:10px}.wallet-banner .wb-content{position:relative;z-index:1}.wallet-banner .wb-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:16px}.wallet-banner .wb-logo{width:36px;height:36px;border-radius:10px;object-fit:contain;background:#fff;padding:3px;flex-shrink:0}.wallet-banner .wb-kind{display:block;margin-bottom:16px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--card-accent,#9fb4ff)}.wallet-banner .wb-name{font-size:38px;font-weight:600;line-height:1.04;letter-spacing:-.015em;max-width:80%}.wallet-banner .wb-reward{display:block;margin-top:16px;font-size:14.5px;font-weight:500;line-height:1.3;color:var(--card-ink-soft,hsla(0,0%,100%,.8))}.loyalty.tpl-neon{border-color:var(--card-accent,#12b5a0)}.loyalty.tpl-punch{border-color:rgba(0,0,0,.12)}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:8px;gap:8px;margin:6px 0 4px}.tpl-opt{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);cursor:pointer;font-size:13px;text-align:left}.tpl-opt:hover{border-color:var(--border-h)}.tpl-opt.active{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.tpl-swatch{width:22px;height:22px;border-radius:6px;border:2px solid;flex-shrink:0}.tpl-name{color:var(--text)}.impersonation-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:9px 16px;background:#171229;color:#ede9ff;font-size:13px}.impersonation-bar strong{color:#fff}.impersonation-bar .linklike{color:#c7bfff;font-weight:600}.qr-card{background:var(--card-grad,linear-gradient(160deg,#1f2348,#0c0d1f));color:var(--card-ink,#fff);border:1px solid var(--card-line,hsla(0,0%,100%,.14));border-radius:18px;padding:16px 20px;display:flex;align-items:center;gap:16px}.qr-card .qrbox{background:#fff;padding:10px;border-radius:12px;border:none;flex-shrink:0}.qr-card .info{flex:1 1;min-width:0}.qr-card .label{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--card-ink-soft,hsla(0,0%,100%,.55))}.qr-card .code-big{margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;font-weight:600}.qr-card .cta{display:inline-block;margin-top:8px;font-size:12.5px;font-weight:600;color:var(--card-accent,#9fb4ff)}.qr-card .share{width:34px;height:34px;border-radius:50%;background:var(--card-line,hsla(0,0%,100%,.08));border:1px solid var(--card-line,hsla(0,0%,100%,.2));display:flex;align-items:center;justify-content:center;color:var(--card-ink-soft,hsla(0,0%,100%,.6));cursor:pointer;align-self:flex-start;flex-shrink:0}.qr-card .qrbox-btn{cursor:pointer;padding:10px;line-height:0;transition:transform .15s ease;-webkit-tap-highlight-color:transparent}.qr-card .qrbox-btn:active{transform:scale(.96)}.qr-card .cta-btn{background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.qr-overlay{position:fixed;inset:0;z-index:1000;background:rgba(6,7,16,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;animation:qrFade .18s ease}@keyframes qrFade{0%{opacity:0}to{opacity:1}}.qr-overlay-inner{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:360px;width:100%}.qr-overlay-qr{background:#fff;padding:22px;border-radius:20px;line-height:0;box-shadow:0 20px 60px rgba(0,0,0,.5)}.qr-overlay-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:20px;font-weight:700;letter-spacing:.04em;color:#fff}.qr-overlay-hint{font-size:14px;color:hsla(0,0%,100%,.7);margin-top:-6px}.qr-overlay .btn{max-width:220px}.center{text-align:center}.spacer{height:14px}.divider{height:1px;background:var(--border);margin:18px 0}.linklike{background:none;border:none;color:var(--brand);font-weight:600;cursor:pointer;padding:0;font-size:14px}.hero{background:linear-gradient(135deg,var(--brand-dark),var(--brand));color:#fff;border-radius:22px;padding:40px 28px;text-align:center;border:1px solid rgba(124,110,255,.25)}.hero h1{color:#fff;font-size:34px}.codebox{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--code-bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13px;word-break:break-all;color:var(--text)}.nly-admin{--brand:#6e59f2;--brand-strong:#9b8bff;--btn-hover:#7e6bff;--brand-dark:#241a5c;--nav-active-bg:rgba(110,89,242,.16);--nav-active-text:#9b8bff;--badge-brand-bg:rgba(110,89,242,.16)}.admin-banner{background:linear-gradient(90deg,#05050f,#241a5c 52%,#6e59f2);color:#fff;font-size:12px;font-weight:600;text-align:center;padding:8px 14px;letter-spacing:1px}.admin-banner .spark{opacity:.75;margin:0 9px}.nly-admin .topbar{border-bottom:none}.nly-admin .brand{color:#fff;letter-spacing:-.01em}.nly-admin .brand .nly-word b{color:var(--brand-strong)}.nly-admin .brand .ad-tag{font-size:10px;font-weight:800;letter-spacing:1.5px;background:rgba(110,89,242,.18);color:#9b8bff;padding:2px 7px;border-radius:6px;text-transform:uppercase}.theme-toggle{position:fixed;bottom:16px;right:16px;z-index:300;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;font-size:13px;font-weight:600;background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);cursor:pointer}.theme-toggle:hover{border-color:var(--border-h)}@keyframes skelPulse{0%{opacity:.55}to{opacity:1}}.card-skel,.card-skel-qr{border-radius:18px;background:linear-gradient(160deg,#2a2a3c,#14141f 60%,#0b0b12);animation:skelPulse 1s ease-in-out infinite alternate}.card-skel{height:224px}.card-skel-qr{height:136px;margin-top:14px;opacity:.7}.stale-pill{margin-top:10px;padding:9px 13px;border-radius:10px;font-size:12.5px;line-height:1.45;font-weight:500;background:rgba(224,161,6,.13);color:#b47d05;border:1px solid rgba(224,161,6,.3)}html[data-theme=dark] .stale-pill{color:#e9b94f}@media screen{.print-only{display:none!important}}@media print{.no-print,.theme-toggle,.topbar,footer{display:none!important}body{background:#fff}.card{box-shadow:none}@page{size:A4 portrait;margin:0}}.qr-poster{width:210mm;min-height:287mm;margin:0 auto;padding:22mm 20mm 14mm;box-sizing:border-box;background:#fff;color:#17141f;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;flex-direction:column;text-align:center;print-color-adjust:exact;-webkit-print-color-adjust:exact}.qr-poster .qp-kicker{font-size:12px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--poster-accent,#7c6eff)}.qr-poster .qp-name{margin-top:7mm;font-size:40px;font-weight:800;letter-spacing:-.02em;line-height:1.05}.qr-poster .qp-rule{width:22mm;height:1.4mm;margin:8mm auto 0;background:var(--poster-accent,#7c6eff)}.qr-poster .qp-title{margin-top:8mm;font-size:21px;font-weight:500;color:#4c4661}.qr-poster .qp-qr{margin:11mm auto 0;padding:8mm;border:1.2mm solid #17141f;border-radius:6mm;display:inline-block;line-height:0;align-self:center}.qr-poster .qp-steps{margin:11mm auto 0;padding:0;list-style:none;text-align:left;font-size:15.5px;line-height:1.5;counter-reset:step;max-width:128mm}.qr-poster .qp-steps li{counter-increment:step;display:flex;gap:5mm;align-items:baseline;margin-bottom:4.5mm}.qr-poster .qp-steps li:before{content:counter(step);flex-shrink:0;width:7.5mm;height:7.5mm;border-radius:50%;background:var(--poster-accent,#7c6eff);color:#fff;font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;transform:translateY(1.5mm)}.qr-poster .qp-reward{margin:4mm auto 0;padding:4mm 8mm;border:.5mm solid var(--poster-accent,#7c6eff);border-radius:3mm;font-size:16.5px;font-weight:600;color:#17141f}.qr-poster .qp-foot{margin-top:auto;padding-top:8mm;border-top:.3mm solid #d9d4e8;display:flex;justify-content:space-between;align-items:baseline;gap:8mm;font-size:11.5px;color:#736e88;text-align:left}.qr-poster .qp-brand{font-weight:800;letter-spacing:.06em;color:#17141f;white-space:nowrap}