.tpql-add-button{width:100%;min-height:46px;margin-top:10px;padding:0 16px;border:1px dashed #df1820;border-radius:10px;background:#fff;color:#df1820;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;text-transform:none;letter-spacing:0;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.tpql-add-button:hover,.tpql-add-button:focus{border-color:#b70f16;background:#fff4f4;color:#b70f16;box-shadow:none;transform:translateY(-1px)}.tpql-add-button:disabled{cursor:default}.tpql-add-button.is-added{border-style:solid;border-color:#18825f;background:#edf8f4;color:#126c4e;transform:none}.tpql-button-icon{flex:0 0 18px;width:18px;height:18px;display:grid;place-items:center;color:currentColor}.tpql-button-icon svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tpql-button-label{display:inline-block;min-width:0}.tpql-label-mobile{display:none}.tpql-fallback-wrap{margin-top:10px}.tpql-toast{position:fixed;top:18px;right:18px;z-index:999999;width:min(390px,calc(100vw - 30px));padding:14px 16px;border-radius:13px;background:#17212b;color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.22);display:flex;gap:12px;align-items:flex-start;opacity:0;visibility:hidden;transform:translateY(-18px);transition:.22s ease}.tpql-toast.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.tpql-toast.is-error{background:#9f171d}.tpql-toast-icon{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#18825f;display:grid;place-items:center;font-weight:900}.tpql-toast.is-error .tpql-toast-icon{background:rgba(255,255,255,.18)}.tpql-toast strong{display:block;font-size:14px;line-height:1.4}.tpql-toast p{display:flex;gap:14px;margin:7px 0 0}.tpql-toast a,.tpql-toast button{border:0;padding:0;background:transparent;color:#fff;font-size:12px;font-weight:800;text-decoration:underline;text-transform:none}

/* V1.4: nút card chỉ được dựng một lần, ở cuối phần chữ của card. */
.tpql-loop-wrap{width:100%;margin:10px 0 0;padding:0;box-sizing:border-box}.tpql-loop-wrap-outside{padding:0 10px 11px}.tpql-add-button.tpql-context-loop{min-height:36px;margin:0;padding:0 9px;border:1px solid #df1820;border-radius:8px;background:#fff;color:#df1820;font-size:12px;font-weight:780;line-height:1.2}.tpql-add-button.tpql-context-loop:hover,.tpql-add-button.tpql-context-loop:focus{background:#fff2f3;border-color:#b70f16;color:#b70f16}.tpql-add-button.tpql-context-loop.is-added{border-color:#18825f;background:#edf8f4;color:#126c4e}.tpql-context-loop .tpql-button-icon,.tpql-context-loop .tpql-button-icon svg{width:15px;height:15px}.box-text-products>.tpql-loop-wrap,.box-text>.tpql-loop-wrap{padding-left:0;padding-right:0}.products .product-small .tpql-loop-wrap,.products .product .tpql-loop-wrap{box-sizing:border-box}

@media(max-width:549px){.tpql-loop-wrap{margin-top:8px}.tpql-loop-wrap-outside{padding-left:6px;padding-right:6px;padding-bottom:8px}.tpql-add-button.tpql-context-loop{min-height:34px;padding:0 6px;font-size:11px;gap:5px}.tpql-context-loop .tpql-label-desktop{display:none}.tpql-context-loop .tpql-label-mobile{display:inline-block}.tpql-context-loop .tpql-button-icon,.tpql-context-loop .tpql-button-icon svg{width:14px;height:14px}}
