/* ====== Thanh toán TN AI: chọn số tiền · vé QR · hóa đơn ====== */
@property --a{syntax:'<angle>';initial-value:0deg;inherits:false}
/* --- chọn số tiền --- */
.ap-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.ap-chip{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;min-height:58px;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font:600 1.02rem var(--font-ui);font-variant-numeric:tabular-nums;transition:transform .16s,border-color .16s,box-shadow .16s,background .16s}
.ap-chip small{opacity:.6;font-size:.8rem}.ap-chip:hover{transform:translateY(-2px);border-color:var(--accent)}
.ap-chip[aria-pressed=true]{border-color:transparent;color:var(--cta-ink);background:var(--cta);box-shadow:0 12px 28px rgba(var(--rim),.28);transform:translateY(-2px)}
.ap-hot{position:absolute;top:-8px;right:10px;font:700 .62rem/1 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;background:var(--hi);color:#2a1a00;padding:3px 7px;border-radius:99px;font-style:normal}
.ap-field{position:relative}.ap-field input{font:700 1.5rem/1.2 var(--font-ui);padding-right:44px;font-variant-numeric:tabular-nums;min-height:58px;border-radius:16px}.ap-cur{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:700}
.ap-help{margin:8px 2px 0;font-size:.84rem;color:var(--muted);min-height:1.3em}.ap-help.bad{color:var(--err)}
.ap-ghost{position:relative;margin:16px auto 6px;width:128px;aspect-ratio:1;border-radius:18px;overflow:hidden;border:1px dashed var(--border);background:var(--surface2);display:grid;place-items:center;text-align:center}
.ap-ghost>svg{position:absolute;inset:0;width:100%;height:100%;filter:blur(5px);opacity:.45}.ap-ghost span{position:relative;z-index:1;font-size:.7rem;line-height:1.3;padding:0 10px;margin-top:34px;color:var(--text);font-weight:600}
.ap-lock{position:absolute;top:22px;left:50%;transform:translateX(-50%);z-index:1;width:30px;height:30px;color:var(--accent2)}.ap-lock svg{width:100%;height:100%}
.ap-go{width:100%;margin-top:12px;min-height:54px;font-size:1.02rem}.ap-go .ic{width:20px;height:20px;display:inline-flex}.ap-go .ic svg,.ic svg{width:100%;height:100%}
.ic{display:inline-flex;width:18px;height:18px;flex:none}
/* --- vé thanh toán --- */
.pt{border:1.5px solid transparent;border-radius:28px;background:linear-gradient(var(--surface),var(--surface)) padding-box,conic-gradient(from var(--a),var(--accent),var(--accent2),var(--hi),var(--accent)) border-box;box-shadow:var(--shadow);overflow:hidden;animation:ptspin 10s linear infinite}
@keyframes ptspin{to{--a:360deg}}
.pt-head{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px dashed var(--border);background:linear-gradient(90deg,rgba(var(--rim),.07),transparent)}
.pt-head img{border-radius:10px}.pt-head div{flex:1;line-height:1.25}.pt-head b{display:block}.pt-head small{color:var(--muted)}
.pt-live{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--ok);padding:6px 12px;border-radius:99px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 10%,transparent)}
.pt-live[data-s=review]{color:var(--warn)}.pt-live i{width:8px;height:8px;border-radius:50%;background:currentColor;animation:ptdot 1.4s infinite}
@keyframes ptdot{0%{box-shadow:0 0 0 0 currentColor}70%,100%{box-shadow:0 0 0 9px transparent}}
.pt-body{display:grid;grid-template-columns:300px minmax(0,1fr);gap:32px;padding:26px 24px 20px;align-items:start}
.pt-qrcol{display:grid;gap:12px;justify-items:center}
.pt-qr{position:relative;width:100%;max-width:290px;aspect-ratio:1;padding:10px;margin:10px;box-sizing:border-box}
.pt-qrart{position:relative;width:100%;height:100%;padding:12px;border-radius:22px;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.24),0 0 0 6px rgba(var(--rim),.08);overflow:hidden}
.pt-qrart svg,.pt-qrart img{display:block;width:100%;height:100%;border-radius:12px;object-fit:contain}
.pt-qr .qk{position:absolute;width:30px;height:30px;border:3.5px solid var(--cta);pointer-events:none;z-index:2}
.pt-qr .tl{left:0;top:0;border-right:0;border-bottom:0;border-radius:16px 0 0 0}.pt-qr .tr{right:0;top:0;border-left:0;border-bottom:0;border-radius:0 16px 0 0}
.pt-qr .bl{left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 16px}.pt-qr .br{right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 16px 0}
.pt-qr .scanbox{position:absolute;inset:22px;overflow:hidden;pointer-events:none;z-index:1;border-radius:12px}
.pt-qr .scan{position:absolute;left:0;right:0;top:0;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--accent2),transparent);box-shadow:0 0 14px 2px var(--accent2);animation:ptscan 3s ease-in-out infinite;will-change:top}
@keyframes ptscan{0%{top:0;opacity:0}12%{opacity:1}50%{top:calc(100% - 3px)}88%{opacity:1}100%{top:0;opacity:0}}
.pt-hint{margin:0;display:flex;gap:8px;align-items:flex-start;font-size:.84rem;color:var(--muted);line-height:1.45;text-align:left}.pt-hint .ic{color:var(--ok);margin-top:2px}
.pt-info{display:grid;gap:2px}
.pt-amount{display:grid;grid-template-columns:1fr auto;align-items:center;padding:4px 0 14px;border-bottom:1px solid var(--border);margin-bottom:6px}.pt-amount small{grid-column:1/-1;color:var(--muted);font-size:.82rem}
.pt-amount b{font:800 clamp(1.9rem,5vw,2.6rem)/1.1 var(--font-ui);font-variant-numeric:tabular-nums;background:linear-gradient(100deg,var(--accent2),var(--accent) 60%,var(--hi));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.01em}
.pt-row{display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.pt-row:last-child{border:0}
.pt-row .k{color:var(--muted);font-size:.88rem}.pt-row .v{font-weight:600;word-break:break-word;font-variant-numeric:tabular-nums}
.pt-row.big .v{justify-self:start;font:700 1.08rem ui-monospace,"SF Mono",Menlo,Consolas,monospace;letter-spacing:.04em;padding:6px 12px;border-radius:10px;background:rgba(var(--rim),.1);border:1px dashed var(--accent)}
.pt-row .tip{grid-column:2/-1;grid-row:2;font-size:.76rem;color:var(--warn);font-style:normal;margin-top:-4px}.pt-row.meta .v{color:var(--muted);font-weight:500}
.pt-cp{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface2);color:var(--text);display:inline-grid;place-items:center;cursor:pointer;transition:transform .15s,background .15s,color .15s}.pt-cp svg{width:17px;height:17px}.pt-cp:hover{transform:scale(1.08);border-color:var(--accent)}.pt-cp.ok{background:var(--ok);color:#06210f;border-color:transparent}
.pt-steps{list-style:none;margin:0;padding:18px 24px 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-top:1px dashed var(--border)}
.pt-steps li{position:relative;display:grid;justify-items:center;gap:7px;text-align:center;font-size:.78rem;color:var(--muted)}
.pt-steps li::before{content:"";position:absolute;top:14px;left:calc(-50% + 18px);right:calc(50% + 18px);height:2px;background:var(--border)}.pt-steps li:first-child::before{display:none}
.pt-steps li b{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:700 .8rem var(--font-ui);background:var(--surface2);border:1px solid var(--border);color:var(--muted)}
.pt-steps li.done b{background:var(--ok);color:#06210f;border-color:transparent}.pt-steps li.done::before,.pt-steps li.now::before{background:var(--ok)}.pt-steps li.done{color:var(--text)}
.pt-steps li.now b{background:var(--cta);color:var(--cta-ink);border-color:transparent;animation:ptdot2 1.8s infinite}.pt-steps li.now{color:var(--text);font-weight:600}
@keyframes ptdot2{0%{box-shadow:0 0 0 0 var(--cta)}70%,100%{box-shadow:0 0 0 10px transparent}}
.pt-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 24px 22px}.pt-actions .note{flex:1;min-width:200px;font-size:.8rem;color:var(--muted)}
@media(max-width:760px){.pt-body{grid-template-columns:1fr;gap:22px;padding:20px 16px}.pt-head{padding:14px 16px}.pt-steps{padding:16px 10px}.pt-row{grid-template-columns:92px minmax(0,1fr) auto}.pt-actions{padding:0 16px 18px}}
/* --- hóa đơn + máy in --- */
.rcw{display:grid;justify-items:center;gap:6px;padding:14px 0 6px;--paper:#fbfbf9;--ink:#171a24}
.rc{position:relative;width:min(372px,94vw)}
.rc-printer{position:relative;z-index:3;height:50px;border-radius:16px 16px 11px 11px;background:linear-gradient(180deg,#323a50,#10151f 55%,#05070d);box-shadow:0 16px 32px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.16),inset 0 -2px 0 rgba(0,0,0,.55)}
.rc-printer::before{content:"";position:absolute;left:24px;right:24px;bottom:10px;height:8px;border-radius:5px;background:#000;box-shadow:inset 0 2px 4px #000,0 1px 0 rgba(255,255,255,.14)}
.rc-printer .led{position:absolute;top:13px;right:20px;width:8px;height:8px;border-radius:50%;background:#35e08a;box-shadow:0 0 9px #35e08a}.rc-printer .brand{position:absolute;left:20px;top:13px;font:600 10px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.2em;color:#7f8aa6}
.rc-clip{position:relative;z-index:2;margin-top:-18px;padding-top:0;clip-path:inset(0 -110px -520px -110px)}
.rc-sheetwrap{margin:0 16px;filter:drop-shadow(0 20px 22px rgba(0,0,0,.3));will-change:transform}
.rc[data-s=idle] .rc-sheetwrap{opacity:0}.rc[data-s=torn] .rc-sheetwrap{pointer-events:none}
.rc-sheet{position:relative;background:var(--paper);color:var(--ink);padding:30px 20px 34px;font:400 12px/1.5 "SF Mono",ui-monospace,Menlo,Consolas,"Courier New",monospace;-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/16px 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/16px 100%;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.018) 0 1px,transparent 1px 3px)}
.rs-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.rs-top img{border-radius:9px}.rs-shop{display:block;font-size:15px;letter-spacing:.06em;color:#2457d6}.rs-top small{color:#6b7184;letter-spacing:.04em;font-size:10.5px}
.rs-chip{display:flex;justify-content:space-between;gap:8px;margin:14px 0 14px;padding:6px 10px;border-radius:6px;background:#eceef2;font-size:10.5px;font-weight:600;color:#3a3f4f;overflow:hidden;white-space:nowrap}.rs-chip span:first-child{overflow:hidden;text-overflow:ellipsis}
.rs-amount{font-weight:800;font-size:33px;line-height:1.1;letter-spacing:-.02em;font-family:inherit;font-variant-numeric:tabular-nums}.rs-date{color:#6b7184;font-size:10.5px;margin-top:3px}
.rs-stamp{position:absolute;right:16px;top:118px;transform:rotate(-12deg);border:2px dashed #d62839;color:#d62839;border-radius:7px;padding:3px 10px 2px;text-align:center;line-height:1.15;background:rgba(251,251,249,.55);pointer-events:none;mix-blend-mode:multiply}
.rs-stamp b{display:block;font-size:13px;letter-spacing:.08em}.rs-stamp small{font-size:9px;font-weight:600}
.rc-sheet hr{border:0;border-top:1px dashed #b9bcc7;margin:14px 0}.rc-sheet hr.solid{border-top:1.5px solid var(--ink);margin:10px 0 10px}
.rs-line{display:flex;justify-content:space-between;gap:12px;padding:2px 0}.rs-line span:first-child{min-width:0;overflow-wrap:anywhere}.rs-line span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}.rs-line.item{font-weight:600}.rs-line.sum{color:#555b6e}.rs-line.grand{font-weight:800;font-size:13px}
.rs-thanks{text-align:center;font-size:9.5px;font-weight:700;letter-spacing:.05em;color:#3a3f4f;margin:18px 6px 12px}
.rs-bars{height:46px}.rs-bars svg{display:block;width:100%;height:46px}.rs-code{text-align:center;font-size:10.5px;color:#555b6e;margin-top:6px;letter-spacing:.14em}
.rc-stub{position:relative;z-index:2;margin:-18px 16px 0;height:34px;display:grid;place-items:center;background:var(--paper);color:#8a90a2;font:600 10px ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/16px 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/16px 100%;padding-top:14px;filter:drop-shadow(0 6px 8px rgba(0,0,0,.2))}
.rc-stub[hidden]{display:none}
.rc-cap{text-align:center;margin-top:18px}.rc-cap h3{margin:0;font:700 1.45rem/1.2 var(--font-ui)}.rc-cap p{margin:4px 0 0;color:var(--muted);font-size:.93rem}
.rc-acts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0 4px;max-width:520px}.rc-acts .btn .ic{width:16px;height:16px}.rc-acts .btn.main{background:var(--btn);color:var(--btn-ink);border-color:transparent}.rc-acts .btn.dash{border-style:dashed}
.rc-center{justify-content:center;margin-top:12px}.bill-modal{width:min(480px,100%)!important;background:var(--bg2)}
#print-sheet{display:none}
@media print{body.print-bill>*:not(#print-sheet){display:none!important}body.print-bill #print-sheet{display:block;width:80mm;margin:0 auto}body.print-bill{background:#fff!important}body.print-bill .rc-sheet{-webkit-mask:none;mask:none;box-shadow:none}.rs-stamp{opacity:1!important}}
@media(prefers-reduced-motion:reduce){.pt,.pt-qr .scan,.pt-live i,.pt-steps li.now b{animation:none}}

@media(max-width:480px){.ap-go{font-size:.92rem;padding:10px 14px}.ap-go span:not(.ic){white-space:nowrap}}

.pt-left,.pt-row.meta span:last-child{font-variant-numeric:tabular-nums;min-width:11ch;display:inline-block}
.pt-qrcol{min-width:0}.pt-body>*{min-width:0}

/* tiền về: vé chuyển xanh + pháo giấy */
.pay-confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:9999}
.pt.pt-paid{border-color:color-mix(in srgb,var(--ok) 70%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--ok) 45%,transparent),0 18px 60px color-mix(in srgb,var(--ok) 28%,transparent);transition:box-shadow .5s,border-color .5s}
.pt.pt-paid .pt-live{color:var(--ok);font-weight:800}.pt.pt-paid .pt-live i{animation:none}
.pt.pt-paid .pt-qr .scan{display:none}
